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::OraPtrMapping Class Reference

#include <RelationalMapping.h>

Inheritance diagram for ora::OraPtrMapping:
ora::IRelationalMapping

Public Member Functions

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

Private Attributes

TableRegisterm_tableRegister
 
Reflex::Type m_type
 

Detailed Description

Definition at line 102 of file RelationalMapping.h.

Constructor & Destructor Documentation

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

Definition at line 297 of file RelationalMapping.cc.

297  :
298  m_type(attributeType), m_tableRegister( tableRegister ){
299 }
TableRegister & m_tableRegister
ora::OraPtrMapping::~OraPtrMapping ( )

Definition at line 301 of file RelationalMapping.cc.

301  {
302 }

Member Function Documentation

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

Implements ora::IRelationalMapping.

Definition at line 304 of file RelationalMapping.cc.

References ora::MappingElement::appendSubElement(), ora::MappingElement::columnNames(), ora::RelationalMappingFactory::newProcessor(), ora::MappingElement::OraPointerMappingElementType(), ora::MappingElement::setColumnNames(), and ora::MappingElement::tableName().

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

307  {
308 
309  std::string typeName = m_type.Name(Reflex::SCOPED);
310  ora::MappingElement& me = parentElement.appendSubElement( ora::MappingElement::OraPointerMappingElementType(), attributeName, typeName, parentElement.tableName() );
311  me.setColumnNames( parentElement.columnNames() );
312 
313  Reflex::Type ptrType = m_type.TemplateArgumentAt(0);
314  std::string ptrTypeName = ptrType.Name();
315 
316  RelationalMappingFactory factory( m_tableRegister );
317  std::auto_ptr<IRelationalMapping> processor( factory.newProcessor( ptrType ) );
318  processor->process( me, ptrTypeName, attributeNameForSchema, scopeNameForSchema );
319 }
MappingElement & appendSubElement(const std::string &elementType, const std::string &variableName, const std::string &variableType, const std::string &tableName)
TableRegister & m_tableRegister
static std::string OraPointerMappingElementType()
Returns the name of the ORA pointer mapping element type.
void setColumnNames(const std::vector< std::string > &columns)

Member Data Documentation

TableRegister& ora::OraPtrMapping::m_tableRegister
private

Definition at line 112 of file RelationalMapping.h.

Reflex::Type ora::OraPtrMapping::m_type
private

Definition at line 111 of file RelationalMapping.h.