CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
ora::OraReferenceMapping Class Reference

#include <RelationalMapping.h>

Inheritance diagram for ora::OraReferenceMapping:
ora::IRelationalMapping

Public Member Functions

 OraReferenceMapping (const Reflex::Type &attributeType, TableRegister &tableRegister)
 
void process (MappingElement &parentElement, const std::string &attributeName, const std::string &attributeNameForSchema, const std::string &scopeNameForSchema)
 
 ~OraReferenceMapping ()
 
- Public Member Functions inherited from ora::IRelationalMapping
virtual ~IRelationalMapping ()
 

Private Attributes

TableRegisterm_tableRegister
 
Reflex::Type m_type
 

Detailed Description

Definition at line 74 of file RelationalMapping.h.

Constructor & Destructor Documentation

ora::OraReferenceMapping::OraReferenceMapping ( const Reflex::Type &  attributeType,
TableRegister tableRegister 
)

Definition at line 212 of file RelationalMapping.cc.

212  :
213  m_type(attributeType),m_tableRegister( tableRegister ){
214 }
TableRegister & m_tableRegister
ora::OraReferenceMapping::~OraReferenceMapping ( )

Definition at line 216 of file RelationalMapping.cc.

216  {
217 }

Member Function Documentation

void ora::OraReferenceMapping::process ( MappingElement parentElement,
const std::string &  attributeName,
const std::string &  attributeNameForSchema,
const std::string &  scopeNameForSchema 
)
virtual

Implements ora::IRelationalMapping.

Definition at line 219 of file RelationalMapping.cc.

References ora::MappingElement::appendSubElement(), className(), ora::MappingRules::columnNameForOID(), i, j, ora::MappingRules::MaxColumnNameLength, ora::MappingRules::newNameForSchemaObject(), ora::MappingElement::OraReferenceMappingElementType(), ora::MappingElement::setColumnNames(), ora::MappingElement::tableName(), and ora::throwException().

Referenced by python.Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigDataAccessor::dumpPython(), python.Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigDataAccessor::open(), python.Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigDataAccessor::outputEventContent(), python.Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigDataAccessor::setProcess(), and python.Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigDataAccessor::setProperty().

222  {
223  std::string className = m_type.Name(Reflex::SCOPED);
224  std::string elementType = ora::MappingElement::OraReferenceMappingElementType();
225  if(!m_tableRegister.checkTable( parentElement.tableName())){
226  throwException("Table \""+parentElement.tableName()+"\" has not been allocated.",
227  "OraReferenceMapping::process");
228  }
229  ora::MappingElement& me = parentElement.appendSubElement( elementType, attributeName, className, parentElement.tableName() );
230 
231  std::vector<std::string> cols;
232  for(unsigned int j=0;j<2;j++){
233  std::string inputCol = ora::MappingRules::columnNameForOID( attributeNameForSchema, scopeNameForSchema, j );
234  std::string columnName(inputCol);
235  unsigned int i=0;
236  while(m_tableRegister.checkColumn(parentElement.tableName(),columnName)){
238  i++;
239  }
240  m_tableRegister.insertColumn(parentElement.tableName(),columnName);
241  cols.push_back( columnName );
242  }
243  me.setColumnNames( cols );
244 }
int i
Definition: DBlmapReader.cc:9
bool insertColumn(const std::string &tableName, const std::string &columnName)
static std::string OraReferenceMappingElementType()
Returns the name of the ORA reference mapping element type.
MappingElement & appendSubElement(const std::string &elementType, const std::string &variableName, const std::string &variableType, const std::string &tableName)
int j
Definition: DBlmapReader.cc:9
static std::string columnNameForOID(const std::string &variableName, const std::string &scope, unsigned int index)
TableRegister & m_tableRegister
bool checkColumn(const std::string &tableName, const std::string &columnName)
static const size_t MaxColumnNameLength
Definition: MappingRules.h:20
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:10
bool checkTable(const std::string &tableName)
static std::string newNameForSchemaObject(const std::string &initialName, unsigned int index, size_t maxLength, char indexTrailer=0)
functions for new schema object name generation
std::string className(const T &t)
Definition: ClassName.h:30
void setColumnNames(const std::vector< std::string > &columns)

Member Data Documentation

TableRegister& ora::OraReferenceMapping::m_tableRegister
private

Definition at line 84 of file RelationalMapping.h.

Reflex::Type ora::OraReferenceMapping::m_type
private

Definition at line 83 of file RelationalMapping.h.