382 const std::vector<std::string>& parentColumns = parentElement.
columnNames();
383 if( parentColumns.empty()){
384 throwException(
"No column name found in the parent mapping element.",
"ArrayMapping::process");
387 std::vector<std::string> columns;
390 std::vector<std::string>::const_iterator iColumn = parentColumns.begin();
393 for ( ;iColumn != parentColumns.end(); iColumn++ ) {
402 std::string arrayScopeNameForSchema = scopeNameForSchema;
403 if( !arrayScopeNameForSchema.empty() ) arrayScopeNameForSchema +=
"_";
404 arrayScopeNameForSchema += attributeNameForSchema;
414 if( singleItemContainer ){
416 contentTypeName =
"value_type";
418 else if ( associativeContainer ) {
420 contentTypeName =
"mapped_type";
424 "ArrayMapping::process");
430 "ArrayMapping::process");
435 "ArrayMapping::process");
441 std::auto_ptr<IRelationalMapping> keyProcessor( mappingFactory.newProcessor( keyType ) );
442 keyProcessor->process( me, keyTypeName, keyTypeNameForSchema, arrayScopeNameForSchema );
445 std::auto_ptr<IRelationalMapping> contentProcessor( mappingFactory.newProcessor( contentType ) );
446 contentProcessor->process( me, contentTypeName, contentTypeNameForSchema, arrayScopeNameForSchema );
edm::TypeWithDict resolvedType(const edm::TypeWithDict &typ)
static std::string arrayMappingElementType()
Returns the name of the array mapping element type.
static std::string variableNameForContainerKey()
bool insertColumns(const std::string &tableName, const std::vector< std::string > &columns)
static std::string variableNameForContainerValue()
MappingElement & appendSubElement(const std::string &elementType, const std::string &variableName, const std::string &variableType, const std::string &tableName)
TableRegister & m_tableRegister
bool isTypeNonAssociativeContainer(const edm::TypeWithDict &typ)
static std::string columnNameForPosition()
std::string cppName() const
bool isTypePVector(const edm::TypeWithDict &typ)
void insertTable(const std::string &tableName)
static std::string newNameForArraySchemaObject(const std::string &initialName, unsigned int index, size_t maxLength)
static std::string columnNameForId()
const std::vector< std::string > & columnNames() const
bool isTypeAssociativeContainer(const edm::TypeWithDict &typ)
bool isTypeQueryableVector(const edm::TypeWithDict &typ)
edm::TypeWithDict containerKeyType(const edm::TypeWithDict &typ)
edm::TypeWithDict containerDataType(const edm::TypeWithDict &typ)
void throwException(const std::string &message, const std::string &methodName) __attribute__((noreturn))
static std::string OraArrayMappingElementType()
Returns the name of the ORA array mapping element type.
edm::TypeWithDict containerValueType(const edm::TypeWithDict &typ)
static const size_t MaxTableNameLength
bool checkTable(const std::string &tableName)
std::string className(const T &t)
void setColumnNames(const std::vector< std::string > &columns)