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

#include <OraDatabaseSchema.h>

Inheritance diagram for ora::OraMappingSchema:
ora::IMappingSchema

Public Member Functions

bool containerForMappingVersion (const std::string &mappingVersion, int &destination)
 
bool getClassVersionListForContainer (int containerId, std::map< std::string, std::string > &versionMap)
 
bool getClassVersionListForMappingVersion (const std::string &mappingVersion, std::set< std::string > &destination)
 
bool getContainerTableMap (std::map< std::string, int > &destination)
 
bool getDependentClassesInContainerMapping (int containerId, std::set< std::string > &destination)
 
bool getMapping (const std::string &version, MappingRawData &destination)
 
bool getMappingVersionListForContainer (int containerId, std::set< std::string > &destination, bool onlyDependency=false)
 
bool getMappingVersionListForTable (const std::string &tableName, std::set< std::string > &destination)
 
bool getVersionList (std::set< std::string > &destination)
 
void insertClassVersion (const std::string &className, const std::string &classVersion, const std::string &classId, int dependencyIndex, int containerId, const std::string &mappingVersion)
 
 OraMappingSchema (coral::ISchema &dbSchema)
 
void removeMapping (const std::string &version)
 
bool selectMappingVersion (const std::string &classId, int containerId, std::string &destination)
 
void setMappingVersion (const std::string &classId, int containerId, const std::string &mappingVersion)
 
void storeMapping (const MappingRawData &mapping)
 
virtual ~OraMappingSchema ()
 
- Public Member Functions inherited from ora::IMappingSchema
virtual ~IMappingSchema ()
 

Private Attributes

coral::ISchema & m_schema
 

Detailed Description

Definition at line 135 of file OraDatabaseSchema.h.

Constructor & Destructor Documentation

ora::OraMappingSchema::OraMappingSchema ( coral::ISchema &  dbSchema)
explicit

Definition at line 615 of file OraDatabaseSchema.cc.

615  :
616  m_schema( dbSchema ){
617 }
coral::ISchema & m_schema
ora::OraMappingSchema::~OraMappingSchema ( )
virtual

Definition at line 619 of file OraDatabaseSchema.cc.

619  {
620 }

Member Function Documentation

bool ora::OraMappingSchema::containerForMappingVersion ( const std::string &  mappingVersion,
int &  destination 
)
virtual

Implements ora::IMappingSchema.

Definition at line 928 of file OraDatabaseSchema.cc.

References ora::OraClassVersionTable::containerIdColumn(), ora::OraClassVersionTable::mappingVersionColumn(), o2o::query, runTheMatrix::ret, and ora::OraClassVersionTable::tableName().

929  {
930  bool ret = false;
931  std::auto_ptr<coral::IQuery> query( m_schema.tableHandle( OraClassVersionTable::tableName() ).newQuery() );
932  query->addToOutputList( OraClassVersionTable::containerIdColumn() );
933  std::ostringstream condition;
935  coral::AttributeList condData;
936  condData.extend<std::string>( OraClassVersionTable::mappingVersionColumn() );
937  coral::AttributeList::iterator iAttribute = condData.begin();
938  iAttribute->data< std::string >() = mappingVersion;
939  query->setCondition( condition.str(), condData );
940  coral::ICursor& cursor = query->execute();
941  while ( cursor.next() ) {
942  ret = true;
943  const coral::AttributeList& currentRow = cursor.currentRow();
944  destination = currentRow[ OraClassVersionTable::containerIdColumn() ].data<int>();
945  }
946  return ret;
947 }
static std::string mappingVersionColumn()
static std::string tableName()
coral::ISchema & m_schema
tuple query
Definition: o2o.py:269
static std::string containerIdColumn()
bool ora::OraMappingSchema::getClassVersionListForContainer ( int  containerId,
std::map< std::string, std::string > &  versionMap 
)
virtual

Implements ora::IMappingSchema.

Definition at line 853 of file OraDatabaseSchema.cc.

References ora::OraClassVersionTable::classVersionColumn(), ora::OraClassVersionTable::containerIdColumn(), ora::OraClassVersionTable::mappingVersionColumn(), o2o::query, runTheMatrix::ret, and ora::OraClassVersionTable::tableName().

854  {
855  bool ret = false;
856  std::auto_ptr<coral::IQuery> query( m_schema.tableHandle( OraClassVersionTable::tableName() ).newQuery() );
857  query->setDistinct();
858  query->addToOutputList( OraClassVersionTable::classVersionColumn() );
860  std::ostringstream condition;
862  coral::AttributeList condData;
863  condData.extend< int >( OraClassVersionTable::containerIdColumn() );
864  condData[ OraClassVersionTable::containerIdColumn() ].data< int >() = containerId;
865  query->setCondition(condition.str(),condData);
866  coral::ICursor& cursor = query->execute();
867  while ( cursor.next() ) {
868  ret = true;
869  const coral::AttributeList& currentRow = cursor.currentRow();
870  std::string classVersion = currentRow[ OraClassVersionTable::classVersionColumn() ].data<std::string>();
871  std::string mappingVersion = currentRow[ OraClassVersionTable::mappingVersionColumn() ].data<std::string>();
872  versionMap.insert( std::make_pair(classVersion,mappingVersion ) );
873  }
874  return ret;
875 }
static std::string mappingVersionColumn()
static std::string tableName()
static std::string classVersionColumn()
coral::ISchema & m_schema
tuple query
Definition: o2o.py:269
static std::string containerIdColumn()
bool ora::OraMappingSchema::getClassVersionListForMappingVersion ( const std::string &  mappingVersion,
std::set< std::string > &  destination 
)
virtual

Implements ora::IMappingSchema.

Definition at line 804 of file OraDatabaseSchema.cc.

References ora::OraClassVersionTable::classVersionColumn(), ora::OraClassVersionTable::mappingVersionColumn(), o2o::query, runTheMatrix::ret, and ora::OraClassVersionTable::tableName().

805  {
806 
807  bool ret = false;
808  std::auto_ptr<coral::IQuery> query( m_schema.tableHandle( OraClassVersionTable::tableName() ).newQuery() );
809  query->setDistinct();
810  query->addToOutputList( OraClassVersionTable::classVersionColumn() );
811  std::ostringstream condition;
813  coral::AttributeList condData;
814  condData.extend< std::string >( OraClassVersionTable::mappingVersionColumn() );
815  condData[ OraClassVersionTable::mappingVersionColumn() ].data< std::string >() = mappingVersion;
816  query->setCondition(condition.str(),condData);
817  coral::ICursor& cursor = query->execute();
818  while ( cursor.next() ) {
819  ret = true;
820  const coral::AttributeList& currentRow = cursor.currentRow();
821  std::string classVersion = currentRow[ OraClassVersionTable::classVersionColumn() ].data<std::string>();
822  destination.insert( classVersion );
823  }
824  return ret;
825 }
static std::string mappingVersionColumn()
static std::string tableName()
static std::string classVersionColumn()
coral::ISchema & m_schema
tuple query
Definition: o2o.py:269
bool ora::OraMappingSchema::getContainerTableMap ( std::map< std::string, int > &  destination)
virtual

Implements ora::IMappingSchema.

Definition at line 733 of file OraDatabaseSchema.cc.

References ora::OraClassVersionTable::containerIdColumn(), ora::OraMappingElementTable::mappingVersionColumn(), ora::OraClassVersionTable::mappingVersionColumn(), o2o::query, runTheMatrix::ret, ora::OraMappingElementTable::tableName(), ora::OraClassVersionTable::tableName(), and ora::OraMappingElementTable::tableNameColumn().

733  {
734  bool ret = false;
735  std::auto_ptr<coral::IQuery> query(m_schema.newQuery());
736  query->addToTableList( OraMappingElementTable::tableName(),"T0");
737  query->addToTableList( OraClassVersionTable::tableName(), "T1");
738  query->setDistinct();
739  query->addToOutputList( "T0."+ OraMappingElementTable::tableNameColumn() );
740  query->addToOutputList( "T1."+ OraClassVersionTable::containerIdColumn());
741  std::ostringstream condition;
743  coral::AttributeList condData;
744  query->setCondition(condition.str(),condData);
745  coral::ICursor& cursor = query->execute();
746  while ( cursor.next() ) {
747  ret = true;
748  const coral::AttributeList& currentRow = cursor.currentRow();
749  std::string tableName = currentRow[ "T0."+ OraMappingElementTable::tableNameColumn()].data<std::string>();
750  int containerId = currentRow[ "T1."+ OraClassVersionTable::containerIdColumn()].data<int>();
751  dest.insert(std::make_pair(tableName,containerId));
752  }
753  return ret;
754 }
static std::string mappingVersionColumn()
static std::string mappingVersionColumn()
static std::string tableName()
static std::string tableNameColumn()
static std::string tableName()
coral::ISchema & m_schema
tuple query
Definition: o2o.py:269
static std::string containerIdColumn()
bool ora::OraMappingSchema::getDependentClassesInContainerMapping ( int  containerId,
std::set< std::string > &  destination 
)
virtual

bool ora::OraMappingSchema::getTableListForContainer( int containerId, std::set<std::string>& dest ){ bool ret = false; std::auto_ptr<coral::IQuery> query(m_schema.newQuery()); query->addToTableList( OraMappingElementTable::tableName(),"T0"); query->addToTableList( OraMappingVersionTable::tableName(), "T1"); query->setDistinct(); query->addToOutputList( "T0."+ OraMappingElementTable::tableNameColumn() ); std::ostringstream condition; condition << "T0."<<OraMappingElementTable::mappingVersionColumn()<<"="<< "T1."<< OraMappingVersionTable::mappingVersionColumn() << " AND "; condition << "T1."<<OraMappingVersionTable::containerIdColumn()<<" =:"<<OraMappingVersionTable::containerIdColumn(); coral::AttributeList condData; condData.extend< int >( OraMappingVersionTable::containerIdColumn() ); condData.begin()->data< int >() = containerId; query->setCondition(condition.str(),condData); coral::ICursor& cursor = query->execute(); while ( cursor.next() ) { ret = true; const coral::AttributeList& currentRow = cursor.currentRow(); std::string tableName = currentRow[ "T0."+ OraMappingElementTable::tableNameColumn()].data<std::string>(); dest.insert( tableName ); } return ret; }

Implements ora::IMappingSchema.

Definition at line 781 of file OraDatabaseSchema.cc.

References className(), ora::OraClassVersionTable::classNameColumn(), ora::OraClassVersionTable::containerIdColumn(), ora::OraClassVersionTable::dependencyIndexColumn(), o2o::query, runTheMatrix::ret, and ora::OraClassVersionTable::tableName().

782  {
783  bool ret = false;
784  std::auto_ptr<coral::IQuery> query( m_schema.tableHandle( OraClassVersionTable::tableName() ).newQuery() );
785  query->setDistinct();
786  query->addToOutputList( OraClassVersionTable::classNameColumn() );
787  std::ostringstream condition;
789  condition << " AND "<< OraClassVersionTable::dependencyIndexColumn()<<" > 0";
790  coral::AttributeList condData;
791  condData.extend< int >( OraClassVersionTable::containerIdColumn() );
792  condData[ OraClassVersionTable::containerIdColumn() ].data< int >() = containerId;
793  query->setCondition(condition.str(),condData);
794  coral::ICursor& cursor = query->execute();
795  while ( cursor.next() ) {
796  ret = true;
797  const coral::AttributeList& currentRow = cursor.currentRow();
798  std::string className = currentRow[ OraClassVersionTable::classNameColumn() ].data<std::string>();
799  destination.insert( className );
800  }
801  return ret;
802 }
static std::string classNameColumn()
static std::string tableName()
static std::string dependencyIndexColumn()
coral::ISchema & m_schema
tuple query
Definition: o2o.py:269
std::string className(const T &t)
Definition: ClassName.h:30
static std::string containerIdColumn()
bool ora::OraMappingSchema::getMapping ( const std::string &  version,
ora::MappingRawData dest 
)
virtual

Implements ora::IMappingSchema.

Definition at line 636 of file OraDatabaseSchema.cc.

References ora::MappingRawData::addElement(), ora::OraMappingElementTable::columnNameColumn(), ora::OraMappingElementTable::elementIdColumn(), ora::MappingRawElement::elementType, ora::OraMappingElementTable::elementTypeColumn(), ora::OraMappingElementTable::mappingVersionColumn(), o2o::query, runTheMatrix::ret, ora::OraMappingElementTable::scopeNameColumn(), ora::OraMappingElementTable::tableName(), ora::OraMappingElementTable::tableNameColumn(), ora::OraMappingElementTable::variableNameColumn(), ora::OraMappingElementTable::variableParIndexColumn(), and ora::OraMappingElementTable::variableTypeColumn().

637  {
638  bool ret = false;
639  coral::ITable& mappingTable = m_schema.tableHandle( OraMappingElementTable::tableName() );
640  std::auto_ptr<coral::IQuery> query(mappingTable.newQuery());
641  coral::AttributeList outputBuffer;
642  outputBuffer.extend<int>( OraMappingElementTable::elementIdColumn() );
643  outputBuffer.extend<std::string>( OraMappingElementTable::elementTypeColumn() );
644  outputBuffer.extend<std::string>( OraMappingElementTable::scopeNameColumn() );
645  outputBuffer.extend<std::string>( OraMappingElementTable::variableNameColumn() );
646  outputBuffer.extend<std::string>( OraMappingElementTable::variableTypeColumn() );
647  outputBuffer.extend<std::string>( OraMappingElementTable::tableNameColumn() );
648  outputBuffer.extend<std::string>( OraMappingElementTable::columnNameColumn() );
649  query->defineOutput( outputBuffer );
650  query->addToOutputList( OraMappingElementTable::elementIdColumn() );
651  query->addToOutputList( OraMappingElementTable::elementTypeColumn() );
652  query->addToOutputList( OraMappingElementTable::scopeNameColumn() );
655  query->addToOutputList( OraMappingElementTable::tableNameColumn() );
656  query->addToOutputList( OraMappingElementTable::columnNameColumn() );
657  std::ostringstream condition;
659  coral::AttributeList condData;
660  condData.extend<std::string>( OraMappingElementTable::mappingVersionColumn() );
661  coral::AttributeList::iterator iAttribute = condData.begin();
662  iAttribute->data< std::string >() = version;
663  query->setCondition( condition.str(), condData );
664  query->addToOrderList( OraMappingElementTable::scopeNameColumn() );
667  coral::ICursor& cursor = query->execute();
668  while ( cursor.next() ) {
669  ret = true;
670  const coral::AttributeList& currentRow = cursor.currentRow();
671  int elementId = currentRow[ OraMappingElementTable::elementIdColumn() ].data<int>();
672  MappingRawElement& elem = dest.addElement( elementId );
673  elem.elementType = currentRow[ OraMappingElementTable::elementTypeColumn() ].data<std::string>();
674  elem.scopeName = currentRow[ OraMappingElementTable::scopeNameColumn() ].data<std::string>();
675  elem.variableName = currentRow[ OraMappingElementTable::variableNameColumn() ].data<std::string>();
676  elem.variableType = currentRow[ OraMappingElementTable::variableTypeColumn() ].data<std::string>();
677  elem.tableName = currentRow[ OraMappingElementTable::tableNameColumn() ].data<std::string>();
678  elem.columns.push_back( currentRow[ OraMappingElementTable::columnNameColumn() ].data<std::string>() );
679  }
680  return ret;
681 }
MappingRawElement & addElement(int elementId)
static std::string variableNameColumn()
static std::string mappingVersionColumn()
static std::string tableName()
static std::string tableNameColumn()
static std::string elementTypeColumn()
static std::string variableParIndexColumn()
static std::string variableTypeColumn()
coral::ISchema & m_schema
static std::string scopeNameColumn()
tuple query
Definition: o2o.py:269
static std::string columnNameColumn()
static std::string elementIdColumn()
bool ora::OraMappingSchema::getMappingVersionListForContainer ( int  containerId,
std::set< std::string > &  destination,
bool  onlyDependency = false 
)
virtual

Implements ora::IMappingSchema.

Definition at line 827 of file OraDatabaseSchema.cc.

References ora::OraClassVersionTable::containerIdColumn(), ora::OraClassVersionTable::dependencyIndexColumn(), ora::OraClassVersionTable::mappingVersionColumn(), o2o::query, runTheMatrix::ret, and ora::OraClassVersionTable::tableName().

829  {
830  bool ret = false;
831  std::auto_ptr<coral::IQuery> query( m_schema.tableHandle( OraClassVersionTable::tableName() ).newQuery() );
832  query->setDistinct();
834  std::ostringstream condition;
836  coral::AttributeList condData;
837  condData.extend< int >( OraClassVersionTable::containerIdColumn() );
838  if( onlyDependency ){
839  condition << " AND "<<OraClassVersionTable::dependencyIndexColumn()<<" > 0";
840  }
841  condData[ OraClassVersionTable::containerIdColumn() ].data< int >() = containerId;
842  query->setCondition(condition.str(),condData);
843  coral::ICursor& cursor = query->execute();
844  while ( cursor.next() ) {
845  ret = true;
846  const coral::AttributeList& currentRow = cursor.currentRow();
847  std::string mappingVersion = currentRow[ OraClassVersionTable::mappingVersionColumn() ].data<std::string>();
848  dest.insert( mappingVersion );
849  }
850  return ret;
851 }
static std::string mappingVersionColumn()
static std::string tableName()
static std::string dependencyIndexColumn()
coral::ISchema & m_schema
tuple query
Definition: o2o.py:269
static std::string containerIdColumn()
bool ora::OraMappingSchema::getMappingVersionListForTable ( const std::string &  tableName,
std::set< std::string > &  destination 
)
virtual

Implements ora::IMappingSchema.

Definition at line 877 of file OraDatabaseSchema.cc.

References ora::OraMappingElementTable::mappingVersionColumn(), o2o::query, runTheMatrix::ret, ora::OraMappingElementTable::tableName(), and ora::OraMappingElementTable::tableNameColumn().

879 {
880  bool ret = false;
881  destination.clear();
882  std::auto_ptr<coral::IQuery> query( m_schema.tableHandle( OraMappingElementTable::tableName() ).newQuery() );
883  query->setDistinct();
885  std::ostringstream condition;
887  coral::AttributeList condData;
888  condData.extend< std::string >( OraMappingElementTable::tableNameColumn() );
889  condData.begin()->data<std::string>() = tableName;
890  query->setCondition(condition.str(),condData);
891  coral::ICursor& cursor = query->execute();
892  while ( cursor.next() ) {
893  ret = true;
894  const coral::AttributeList& currentRow = cursor.currentRow();
895  std::string mappingVersion = currentRow[ OraMappingElementTable::mappingVersionColumn()].data<std::string>();
896  destination.insert( mappingVersion );
897  }
898  return ret;
899 }
static std::string mappingVersionColumn()
static std::string tableName()
static std::string tableNameColumn()
coral::ISchema & m_schema
tuple query
Definition: o2o.py:269
bool ora::OraMappingSchema::getVersionList ( std::set< std::string > &  destination)
virtual

Implements ora::IMappingSchema.

Definition at line 622 of file OraDatabaseSchema.cc.

References ora::OraMappingVersionTable::mappingVersionColumn(), o2o::query, runTheMatrix::ret, and ora::OraMappingVersionTable::tableName().

622  {
623  bool ret = false;
624  std::auto_ptr<coral::IQuery> query( m_schema.tableHandle( OraMappingVersionTable::tableName() ).newQuery() );
626  coral::ICursor& cursor = query->execute();
627  while ( cursor.next() ) {
628  ret = true;
629  const coral::AttributeList& currentRow = cursor.currentRow();
630  std::string mappingVersion = currentRow[ OraMappingVersionTable::mappingVersionColumn()].data<std::string>();
631  dest.insert( mappingVersion );
632  }
633  return ret;
634 }
static std::string tableName()
static std::string mappingVersionColumn()
coral::ISchema & m_schema
tuple query
Definition: o2o.py:269
void ora::OraMappingSchema::insertClassVersion ( const std::string &  className,
const std::string &  classVersion,
const std::string &  classId,
int  dependencyIndex,
int  containerId,
const std::string &  mappingVersion 
)
virtual

Implements ora::IMappingSchema.

Definition at line 949 of file OraDatabaseSchema.cc.

References ora::OraClassVersionTable::classIdColumn(), ora::OraClassVersionTable::classNameColumn(), ora::OraClassVersionTable::classVersionColumn(), ora::OraClassVersionTable::containerIdColumn(), ora::OraClassVersionTable::dependencyIndexColumn(), idDealer::inputData, ora::OraClassVersionTable::mappingVersionColumn(), and ora::OraClassVersionTable::tableName().

954  {
955  coral::ITable& classVersionTable = m_schema.tableHandle( OraClassVersionTable::tableName() );
956  coral::AttributeList inputData;
957  inputData.extend<std::string>( OraClassVersionTable::mappingVersionColumn());
958  inputData.extend<std::string>( OraClassVersionTable::classNameColumn());
959  inputData.extend<std::string>( OraClassVersionTable::classVersionColumn());
960  inputData.extend<std::string>( OraClassVersionTable::classIdColumn());
961  inputData.extend<int>( OraClassVersionTable::dependencyIndexColumn());
962  inputData.extend<int>( OraClassVersionTable::containerIdColumn());
963  coral::AttributeList::iterator iInAttr = inputData.begin();
964  iInAttr->data< std::string >() = mappingVersion;
965  ++iInAttr;
966  iInAttr->data< std::string >() = className;
967  ++iInAttr;
968  iInAttr->data< std::string >() = classVersion;
969  ++iInAttr;
970  iInAttr->data< std::string >() = classId;
971  ++iInAttr;
972  iInAttr->data< int >() = dependencyIndex;
973  ++iInAttr;
974  iInAttr->data< int >() = containerId;
975  classVersionTable.dataEditor().insertRow( inputData );
976 }
static std::string classIdColumn()
static std::string mappingVersionColumn()
static std::string classNameColumn()
static std::string tableName()
static std::string classVersionColumn()
static std::string dependencyIndexColumn()
coral::ISchema & m_schema
std::string className(const T &t)
Definition: ClassName.h:30
tuple inputData
Definition: idDealer.py:72
static std::string containerIdColumn()
void ora::OraMappingSchema::removeMapping ( const std::string &  version)
virtual

Implements ora::IMappingSchema.

Definition at line 721 of file OraDatabaseSchema.cc.

References ora::OraMappingVersionTable::mappingVersionColumn(), ora::OraMappingVersionTable::tableName(), ora::OraMappingElementTable::tableName(), and ora::OraClassVersionTable::tableName().

721  {
722  // Remove all rows in the tables with the version.
723  coral::AttributeList whereData;
724  whereData.extend<std::string>( OraMappingVersionTable::mappingVersionColumn() );
725  whereData.begin()->data<std::string>() = version;
726 
728  m_schema.tableHandle( OraClassVersionTable::tableName() ).dataEditor().deleteRows( condition, whereData );
729  m_schema.tableHandle( OraMappingElementTable::tableName() ).dataEditor().deleteRows( condition, whereData );
730  m_schema.tableHandle( OraMappingVersionTable::tableName() ).dataEditor().deleteRows( condition, whereData );
731 }
static std::string tableName()
static std::string tableName()
static std::string tableName()
static std::string mappingVersionColumn()
coral::ISchema & m_schema
bool ora::OraMappingSchema::selectMappingVersion ( const std::string &  classId,
int  containerId,
std::string &  destination 
)
virtual

Implements ora::IMappingSchema.

Definition at line 901 of file OraDatabaseSchema.cc.

References ora::OraClassVersionTable::classIdColumn(), ora::OraClassVersionTable::containerIdColumn(), ora::OraClassVersionTable::mappingVersionColumn(), o2o::query, runTheMatrix::ret, and ora::OraClassVersionTable::tableName().

903  {
904  bool ret = false;
905  destination.clear();
906  std::auto_ptr<coral::IQuery> query( m_schema.tableHandle( OraClassVersionTable::tableName() ).newQuery() );
908  std::ostringstream condition;
909  condition << OraClassVersionTable::classIdColumn() << " =:" << OraClassVersionTable::classIdColumn() << " AND ";
911  coral::AttributeList condData;
912  condData.extend<std::string>( OraClassVersionTable::classIdColumn() );
913  condData.extend<int>( OraClassVersionTable::containerIdColumn() );
914  coral::AttributeList::iterator iAttribute = condData.begin();
915  iAttribute->data< std::string >() = classId;
916  ++iAttribute;
917  iAttribute->data< int >() = containerId;
918  query->setCondition( condition.str(), condData );
919  coral::ICursor& cursor = query->execute();
920  while ( cursor.next() ) {
921  ret = true;
922  const coral::AttributeList& currentRow = cursor.currentRow();
923  destination = currentRow[OraClassVersionTable::mappingVersionColumn()].data<std::string>();
924  }
925  return ret;
926 }
static std::string classIdColumn()
static std::string mappingVersionColumn()
static std::string tableName()
coral::ISchema & m_schema
tuple query
Definition: o2o.py:269
static std::string containerIdColumn()
void ora::OraMappingSchema::setMappingVersion ( const std::string &  classId,
int  containerId,
const std::string &  mappingVersion 
)
virtual

Implements ora::IMappingSchema.

Definition at line 978 of file OraDatabaseSchema.cc.

References ora::OraClassVersionTable::classIdColumn(), ora::OraClassVersionTable::containerIdColumn(), idDealer::inputData, ora::OraClassVersionTable::mappingVersionColumn(), and ora::OraClassVersionTable::tableName().

980  {
981  coral::ITable& classVersionTable = m_schema.tableHandle( OraClassVersionTable::tableName() );
982  coral::AttributeList inputData;
983  inputData.extend<std::string>( OraClassVersionTable::mappingVersionColumn());
984  inputData.extend<std::string>( OraClassVersionTable::classIdColumn());
985  inputData.extend<int>( OraClassVersionTable::containerIdColumn());
986  coral::AttributeList::iterator iInAttr = inputData.begin();
987  iInAttr->data< std::string >() = mappingVersion;
988  ++iInAttr;
989  iInAttr->data< std::string >() = classId;
990  ++iInAttr;
991  iInAttr->data< int >() = containerId;
993  std::string whereClause = OraClassVersionTable::classIdColumn()+" =:"+ OraClassVersionTable::classIdColumn()+" AND "+
995  classVersionTable.dataEditor().updateRows( setClause,whereClause, inputData );
996 }
static std::string classIdColumn()
static std::string mappingVersionColumn()
static std::string tableName()
coral::ISchema & m_schema
tuple inputData
Definition: idDealer.py:72
static std::string containerIdColumn()
void ora::OraMappingSchema::storeMapping ( const MappingRawData mapping)
virtual

Implements ora::IMappingSchema.

Definition at line 683 of file OraDatabaseSchema.cc.

References ora::OraMappingElementTable::columnNameColumn(), ora::OraMappingElementTable::elementIdColumn(), ora::MappingRawData::elements, ora::OraMappingElementTable::elementTypeColumn(), ora::OraMappingVersionTable::mappingVersionColumn(), ora::OraMappingElementTable::mappingVersionColumn(), ora::OraMappingElementTable::scopeNameColumn(), ora::OraMappingVersionTable::tableName(), ora::OraMappingElementTable::tableName(), ora::OraMappingElementTable::tableNameColumn(), ora::OraMappingElementTable::variableNameColumn(), ora::OraMappingElementTable::variableParIndexColumn(), ora::OraMappingElementTable::variableTypeColumn(), and ora::MappingRawData::version.

683  {
684  // first update the version table
685  coral::ITable& mappingVersionTable = m_schema.tableHandle( OraMappingVersionTable::tableName() );
686  coral::AttributeList rowBuffer;
687  rowBuffer.extend< std::string >( OraMappingVersionTable::mappingVersionColumn() );
688  rowBuffer[ OraMappingVersionTable::mappingVersionColumn() ].data<std::string>()= mapping.version;
689  mappingVersionTable.dataEditor().insertRow( rowBuffer );
690 
691  // then update the element tables
692  coral::ITable& mappingElementTable = m_schema.tableHandle( OraMappingElementTable::tableName() );
693  coral::AttributeList dataBuffer;
694  dataBuffer.extend< std::string >( OraMappingElementTable::mappingVersionColumn() );
695  dataBuffer.extend< int >( OraMappingElementTable::elementIdColumn() );
696  dataBuffer.extend< std::string >( OraMappingElementTable::elementTypeColumn() );
697  dataBuffer.extend< std::string >( OraMappingElementTable::scopeNameColumn() );
698  dataBuffer.extend< std::string >( OraMappingElementTable::variableNameColumn() );
699  dataBuffer.extend< unsigned int >( OraMappingElementTable::variableParIndexColumn() );
700  dataBuffer.extend< std::string >( OraMappingElementTable::variableTypeColumn() );
701  dataBuffer.extend< std::string >( OraMappingElementTable::tableNameColumn() );
702  dataBuffer.extend< std::string >( OraMappingElementTable::columnNameColumn() );
703  dataBuffer[ OraMappingElementTable::mappingVersionColumn() ].data<std::string>()= mapping.version;
704 
705  for( std::map < int, MappingRawElement >::const_iterator iElem = mapping.elements.begin();
706  iElem != mapping.elements.end(); iElem++ ){
707  for( size_t iParamIndex = 0; iParamIndex < iElem->second.columns.size(); iParamIndex++ ){
708  dataBuffer[ OraMappingElementTable::elementIdColumn() ].data<int>() = iElem->first;
709  dataBuffer[ OraMappingElementTable::elementTypeColumn()].data<std::string>()= iElem->second.elementType;
710  dataBuffer[ OraMappingElementTable::scopeNameColumn() ].data<std::string>()= iElem->second.scopeName;
711  dataBuffer[ OraMappingElementTable::variableNameColumn() ].data<std::string>()= iElem->second.variableName;
712  dataBuffer[ OraMappingElementTable::variableParIndexColumn() ].data<unsigned int>() = iParamIndex;
713  dataBuffer[ OraMappingElementTable::variableTypeColumn() ].data<std::string>()= iElem->second.variableType;
714  dataBuffer[ OraMappingElementTable::tableNameColumn() ].data<std::string>()= iElem->second.tableName;
715  dataBuffer[ OraMappingElementTable::columnNameColumn() ].data<std::string>()= iElem->second.columns[iParamIndex];
716  mappingElementTable.dataEditor().insertRow( dataBuffer );
717  }
718  }
719 }
static std::string variableNameColumn()
static std::string mappingVersionColumn()
static std::string tableName()
static std::string tableNameColumn()
static std::string elementTypeColumn()
static std::string variableParIndexColumn()
static std::string tableName()
static std::string variableTypeColumn()
static std::string mappingVersionColumn()
coral::ISchema & m_schema
static std::string scopeNameColumn()
static std::string columnNameColumn()
static std::string elementIdColumn()

Member Data Documentation

coral::ISchema& ora::OraMappingSchema::m_schema
private

Definition at line 156 of file OraDatabaseSchema.h.