CMS 3D CMS Logo

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

#include <MappingDatabase.h>

Public Member Functions

void clear ()
 
bool getBaseMappingForContainer (const std::string &className, int containerId, MappingTree &destination)
 
bool getClassVersionListForContainer (int containerId, std::map< std::string, std::string > &versionMap)
 
bool getClassVersionListForMappingVersion (const std::string &mappingVersion, std::set< std::string > &destination)
 
bool getDependentClassesForContainer (int containerId, std::set< std::string > &list)
 
bool getDependentMappingsForContainer (int containerId, std::vector< MappingElement > &destination)
 
bool getMappingByVersion (const std::string &version, MappingTree &destination)
 
bool getMappingForContainer (const Reflex::Type &containerClass, int containerId, MappingTree &destination)
 
bool getMappingVersionsForContainer (int containerId, std::set< std::string > &versionList)
 
void insertClassVersion (const Reflex::Type &dictionaryEntry, int dependencyIndex, int containerId, const std::string &mappingVersion, bool asBase=false)
 
void insertClassVersion (const std::string &className, const std::string &classVersion, int dependencyIndex, int containerId, const std::string &mappingVersion, bool asBase=false)
 
 MappingDatabase (IDatabaseSchema &schema)
 Constructor. More...
 
std::string newMappingVersionForContainer (const std::string &className)
 
std::string newMappingVersionForDependentClass (const std::string &containerName, const std::string &className)
 
void removeMapping (const std::string &version)
 
void setMappingVersionForClass (const Reflex::Type &dictionaryEntry, int containerId, const std::string &mappingVersion, bool dependency=false)
 
void storeMapping (const MappingTree &mappingStructure)
 
const std::set< std::string > & versions ()
 
 ~MappingDatabase ()
 Destructor. More...
 

Static Public Member Functions

static std::string versionOfClass (const Reflex::Type &dictionary)
 

Private Member Functions

void buildElement (MappingElement &parentElement, const std::string &scopeName, std::map< std::string, std::vector< MappingRawElement > > &innerElements)
 
void unfoldElement (const MappingElement &element, MappingRawData &destination)
 

Private Attributes

bool m_isLoaded
 
NamedSequence m_mappingSequence
 
IDatabaseSchemam_schema
 The schema in use. More...
 
std::set< std::string > m_versions
 
bool m_writingEnabled
 

Detailed Description

Utility class to manage the object-relational mappings for the C++ classes.

Definition at line 27 of file MappingDatabase.h.

Constructor & Destructor Documentation

ora::MappingDatabase::MappingDatabase ( ora::IDatabaseSchema schema)
explicit

Constructor.

Definition at line 58 of file MappingDatabase.cc.

58  :
59  m_schema( schema ),
61  m_versions(),
62  m_isLoaded( false ){
63 }
NamedSequence m_mappingSequence
static std::string sequenceNameForMapping()
Definition: MappingRules.cc:28
std::set< std::string > m_versions
IDatabaseSchema & m_schema
The schema in use.
ora::MappingDatabase::~MappingDatabase ( )

Destructor.

Definition at line 66 of file MappingDatabase.cc.

66  {
67 }

Member Function Documentation

void ora::MappingDatabase::buildElement ( MappingElement parentElement,
const std::string &  scopeName,
std::map< std::string, std::vector< MappingRawElement > > &  innerElements 
)
private

Definition at line 22 of file MappingDatabase.cc.

References ora::MappingElement::appendSubElement(), and ora::MappingElement::setColumnNames().

24  {
25  std::map<std::string,std::vector<MappingRawElement> >::iterator iScope = innerElements.find(scopeName);
26  if(iScope != innerElements.end()){
27  for( std::vector<MappingRawElement>::const_iterator iM = iScope->second.begin();
28  iM != iScope->second.end(); ++iM ){
29  MappingElement& element = parentElement.appendSubElement( iM->elementType,
30  iM->variableName,
31  iM->variableType,
32  iM->tableName );
33  element.setColumnNames(iM->columns);
34  std::string nextScope(scopeName);
35  nextScope.append("::").append(iM->variableName);
36  buildElement( element, nextScope, innerElements );
37  }
38  }
39  innerElements.erase(scopeName);
40 }
void buildElement(MappingElement &parentElement, const std::string &scopeName, std::map< std::string, std::vector< MappingRawElement > > &innerElements)
void ora::MappingDatabase::clear ( void  )
bool ora::MappingDatabase::getBaseMappingForContainer ( const std::string &  className,
int  containerId,
MappingTree destination 
)

Definition at line 201 of file MappingDatabase.cc.

References ora::MappingRules::baseIdForClass(), className(), ora::MappingTree::className(), newFWLiteAna::found, runTheMatrix::ret, and ora::throwException().

Referenced by ora::DatabaseUtilitySession::importContainerSchema().

203  {
204  bool ret = false;
205  std::string classId = MappingRules::baseIdForClass( className );
206  std::string mappingVersion("");
207  bool found = m_schema.mappingSchema().selectMappingVersion( classId, containerId, mappingVersion );
208 
209  if( found ){
210  ret = getMappingByVersion( mappingVersion, destination );
211  if( !ret ){
212  throwException("Mapping version \""+mappingVersion+"\" not found.",
213  "MappingDatabase::getBaseMappingForContainer");
214  }
215  if( destination.className() != className ){
216  throwException("Mapping inconsistency detected for version=\""+mappingVersion+"\"",
217  "MappingDatabase::getBaseMappingForContainer");
218  }
219  }
220  return ret;
221 }
static std::string baseIdForClass(const std::string &className)
Definition: MappingRules.cc:61
virtual bool selectMappingVersion(const std::string &classId, int containerId, std::string &destination)=0
virtual IMappingSchema & mappingSchema()=0
bool getMappingByVersion(const std::string &version, MappingTree &destination)
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:10
IDatabaseSchema & m_schema
The schema in use.
std::string className(const T &t)
Definition: ClassName.h:30
bool ora::MappingDatabase::getClassVersionListForContainer ( int  containerId,
std::map< std::string, std::string > &  versionMap 
)

Definition at line 261 of file MappingDatabase.cc.

262  {
263 
264  return m_schema.mappingSchema().getClassVersionListForContainer( containerId, versionMap );
265 }
virtual bool getClassVersionListForContainer(int containerId, std::map< std::string, std::string > &versionMap)=0
virtual IMappingSchema & mappingSchema()=0
IDatabaseSchema & m_schema
The schema in use.
bool ora::MappingDatabase::getClassVersionListForMappingVersion ( const std::string &  mappingVersion,
std::set< std::string > &  destination 
)

Definition at line 243 of file MappingDatabase.cc.

Referenced by ora::DatabaseUtilitySession::importContainerSchema().

244  {
245  return m_schema.mappingSchema().getClassVersionListForMappingVersion( mappingVersion, destination );
246 }
virtual IMappingSchema & mappingSchema()=0
virtual bool getClassVersionListForMappingVersion(const std::string &mappingVersion, std::set< std::string > &destination)=0
IDatabaseSchema & m_schema
The schema in use.
bool ora::MappingDatabase::getDependentClassesForContainer ( int  containerId,
std::set< std::string > &  list 
)

Definition at line 314 of file MappingDatabase.cc.

Referenced by ora::DatabaseUtilitySession::importContainerSchema().

315  {
317 }
virtual IMappingSchema & mappingSchema()=0
IDatabaseSchema & m_schema
The schema in use.
virtual bool getDependentClassesInContainerMapping(int containerId, std::set< std::string > &destination)=0
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run
bool ora::MappingDatabase::getDependentMappingsForContainer ( int  containerId,
std::vector< MappingElement > &  destination 
)

Definition at line 223 of file MappingDatabase.cc.

References runTheMatrix::ret, ora::throwException(), and ora::MappingTree::topElement().

224  {
225  bool ret = false;
226  std::set<std::string> versions;
227  if( m_schema.mappingSchema().getMappingVersionListForContainer( containerId, versions, true ) ){
228  ret = true;
229  for( std::set<std::string>::iterator iM = versions.begin();
230  iM != versions.end(); ++iM ){
231  MappingTree mapping;
232  if( ! getMappingByVersion( *iM, mapping )){
233  throwException("Mapping version \""+*iM+"\" not found.",
234  "MappingDatabase::getDependentMappingsForContainer");
235 
236  }
237  destination.push_back( mapping.topElement() );
238  }
239  }
240  return ret;
241 }
virtual IMappingSchema & mappingSchema()=0
bool getMappingByVersion(const std::string &version, MappingTree &destination)
const std::set< std::string > & versions()
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:10
IDatabaseSchema & m_schema
The schema in use.
virtual bool getMappingVersionListForContainer(int containerId, std::set< std::string > &destination, bool onlyDependency=false)=0
bool ora::MappingDatabase::getMappingByVersion ( const std::string &  version,
MappingTree destination 
)

Definition at line 123 of file MappingDatabase.cc.

References ora::MappingElement::classMappingElementType(), ora::MappingRawElement::columns, ora::MappingElement::dependencyMappingElementType(), ora::MappingRawData::elements, ora::MappingRawElement::elementType, ora::MappingRawElement::emptyScope(), runTheMatrix::ret, ora::MappingElement::setColumnNames(), ora::MappingTree::setTopElement(), ora::MappingTree::setVersion(), ora::MappingRawElement::tableName, ora::throwException(), and ora::MappingRawElement::variableName.

Referenced by ora::DatabaseUtilitySession::importContainerSchema().

123  {
124  bool ret = false;
125  MappingRawData mapData;
126  if(m_schema.mappingSchema().getMapping( version, mapData )){
127  ret = true;
128  MappingRawElement topLevelElement;
129  bool topLevelFound = false;
130  bool dependency = false;
131  std::map<std::string, std::vector<MappingRawElement> > innerElements;
132  for( std::map< int, MappingRawElement>::iterator iElem = mapData.elements.begin();
133  iElem != mapData.elements.end(); iElem++ ){
134  // first loading the top level elements
135  if( iElem->second.scopeName == MappingRawElement::emptyScope() ){
136  if( iElem->second.elementType == MappingElement::classMappingElementType() ||
137  iElem->second.elementType == MappingElement::dependencyMappingElementType() ){
138  if( topLevelFound ){
139  throwException("Mapping inconsistent.More then one top level element found.",
140  "MappingDatabase::getMappingByVersion");
141  }
142  topLevelElement = iElem->second;
143  if( topLevelElement.elementType == MappingElement::dependencyMappingElementType() ) dependency = true;
144  topLevelFound = true;
145  }
146  } else {
147  std::map<std::string, std::vector<MappingRawElement> >::iterator iN = innerElements.find( iElem->second.scopeName );
148  if(iN==innerElements.end()){
149  innerElements.insert( std::make_pair( iElem->second.scopeName, std::vector<MappingRawElement>(1,iElem->second) ) );
150  } else {
151  iN->second.push_back( iElem->second );
152  }
153  }
154  }
155  if( !topLevelFound ){
156  throwException( "Could not find top element for mapping version \""+version+"\".",
157  "MappingDatabase::getMappingByVersion" );
158  }
159  MappingElement& topElement = destination.setTopElement( topLevelElement.variableName,
160  topLevelElement.tableName,
161  dependency );
162  topElement.setColumnNames( topLevelElement.columns);
163  buildElement( topElement, topLevelElement.variableName, innerElements );
164  destination.setVersion( version );
165  }
166  return ret;
167 }
static std::string dependencyMappingElementType()
Returns the name of the dependent class mapping element type.
virtual bool getMapping(const std::string &version, MappingRawData &destination)=0
void buildElement(MappingElement &parentElement, const std::string &scopeName, std::map< std::string, std::vector< MappingRawElement > > &innerElements)
static std::string emptyScope()
virtual IMappingSchema & mappingSchema()=0
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:10
IDatabaseSchema & m_schema
The schema in use.
static std::string classMappingElementType()
Returns the name of the class mapping element type.
bool ora::MappingDatabase::getMappingForContainer ( const Reflex::Type &  containerClass,
int  containerId,
MappingTree destination 
)

Definition at line 174 of file MappingDatabase.cc.

References ora::MappingRules::classId(), className(), ora::MappingTree::className(), newFWLiteAna::found, runTheMatrix::ret, ora::throwException(), and BeamSplash_cfg::version.

176  {
177 
178  bool ret = false;
179  // The class parameters
180  std::string className = containerClass.Name(Reflex::SCOPED);
181  std::string classVersion = versionOfClass( containerClass );
182  std::string classId = MappingRules::classId( className, classVersion );
183 
184  std::string version("");
185  bool found = m_schema.mappingSchema().selectMappingVersion( classId, containerId, version );
186 
187  if( found ){
188  ret = getMappingByVersion( version, destination );
189  if( !ret ){
190  throwException("Mapping version \""+version+"\" not found.",
191  "MappingDatabase::getMappingForContainer");
192  }
193  if( destination.className() != className ){
194  throwException("Mapping inconsistency detected for version=\""+version+"\"",
195  "MappingDatabase::getMappingForContainer");
196  }
197  }
198  return ret;
199 }
virtual bool selectMappingVersion(const std::string &classId, int containerId, std::string &destination)=0
static std::string versionOfClass(const Reflex::Type &dictionary)
virtual IMappingSchema & mappingSchema()=0
bool getMappingByVersion(const std::string &version, MappingTree &destination)
static std::string classId(const std::string &className, const std::string &classVersion)
Definition: MappingRules.cc:46
void throwException(const std::string &message, const std::string &methodName)
Definition: Exception.cc:10
IDatabaseSchema & m_schema
The schema in use.
std::string className(const T &t)
Definition: ClassName.h:30
bool ora::MappingDatabase::getMappingVersionsForContainer ( int  containerId,
std::set< std::string > &  versionList 
)

Definition at line 302 of file MappingDatabase.cc.

Referenced by ora::DatabaseUtilitySession::importContainerSchema().

302  {
303  return m_schema.mappingSchema().getMappingVersionListForContainer( containerId, versionList );
304 }
virtual IMappingSchema & mappingSchema()=0
IDatabaseSchema & m_schema
The schema in use.
virtual bool getMappingVersionListForContainer(int containerId, std::set< std::string > &destination, bool onlyDependency=false)=0
void ora::MappingDatabase::insertClassVersion ( const Reflex::Type &  dictionaryEntry,
int  dependencyIndex,
int  containerId,
const std::string &  mappingVersion,
bool  asBase = false 
)

Definition at line 267 of file MappingDatabase.cc.

References className().

271  {
272  std::string className = dictionaryEntry.Name( Reflex::SCOPED );
273  std::string classVersion = versionOfClass( dictionaryEntry );
274  insertClassVersion( className, classVersion, depIndex, containerId, mappingVersion, asBase );
275 }
void insertClassVersion(const Reflex::Type &dictionaryEntry, int dependencyIndex, int containerId, const std::string &mappingVersion, bool asBase=false)
static std::string versionOfClass(const Reflex::Type &dictionary)
std::string className(const T &t)
Definition: ClassName.h:30
void ora::MappingDatabase::insertClassVersion ( const std::string &  className,
const std::string &  classVersion,
int  dependencyIndex,
int  containerId,
const std::string &  mappingVersion,
bool  asBase = false 
)

Definition at line 248 of file MappingDatabase.cc.

References ora::MappingRules::baseClassVersion(), ora::MappingRules::baseIdForClass(), and ora::MappingRules::classId().

253  {
254  std::string classId = MappingRules::classId( className, classVersion );
255  m_schema.mappingSchema().insertClassVersion( className, classVersion, classId, dependencyIndex, containerId, mappingVersion );
256  if( asBase ){
258  }
259 }
static std::string baseIdForClass(const std::string &className)
Definition: MappingRules.cc:61
virtual IMappingSchema & mappingSchema()=0
virtual void insertClassVersion(const std::string &className, const std::string &classVersion, const std::string &classId, int dependencyIndex, int containerId, const std::string &mappingVersion)=0
static std::string baseClassVersion()
Definition: MappingRules.cc:66
static std::string classId(const std::string &className, const std::string &classVersion)
Definition: MappingRules.cc:46
IDatabaseSchema & m_schema
The schema in use.
std::string className(const T &t)
Definition: ClassName.h:30
std::string ora::MappingDatabase::newMappingVersionForContainer ( const std::string &  className)

Definition at line 70 of file MappingDatabase.cc.

References newFWLiteAna::found, align_cfg::iteration, and ora::MappingRules::newMappingVersionForContainer().

70  {
71  if(!m_isLoaded){
73  m_isLoaded = true;
74  }
75 
76  std::string newMappingVersion = "";
77  for ( int iteration = 0;; ++iteration ) {
78  newMappingVersion = MappingRules::newMappingVersionForContainer( containerName, iteration );
79  bool found = false;
80  for ( std::set<std::string>::reverse_iterator iVersion = m_versions.rbegin();
81  iVersion != m_versions.rend(); ++iVersion ) {
82  if ( *iVersion == newMappingVersion ) {
83  found = true;
84  break;
85  }
86  }
87  if ( ! found ){
88  m_versions.insert( newMappingVersion );
89  break;
90  }
91 
92  }
93  return newMappingVersion;
94 }
static std::string newMappingVersionForContainer(const std::string &containerName, int iteration)
mapping versions
virtual bool getVersionList(std::set< std::string > &destination)=0
tuple iteration
Definition: align_cfg.py:5
virtual IMappingSchema & mappingSchema()=0
std::set< std::string > m_versions
IDatabaseSchema & m_schema
The schema in use.
std::string ora::MappingDatabase::newMappingVersionForDependentClass ( const std::string &  containerName,
const std::string &  className 
)

Definition at line 97 of file MappingDatabase.cc.

References newFWLiteAna::found, align_cfg::iteration, and ora::MappingRules::newMappingVersionForDependentClass().

97  {
98  if(!m_isLoaded){
100  m_isLoaded = true;
101  }
102 
103  std::string newMappingVersion = "";
104  for ( int iteration = 0;; ++iteration ) {
105  newMappingVersion = MappingRules::newMappingVersionForDependentClass( containerName, className, iteration );
106  bool found = false;
107  for ( std::set<std::string>::reverse_iterator iVersion = m_versions.rbegin();
108  iVersion != m_versions.rend(); ++iVersion ) {
109  if ( *iVersion == newMappingVersion ) {
110  found = true;
111  break;
112  }
113  }
114  if ( ! found ){
115  m_versions.insert( newMappingVersion );
116  break;
117  }
118 
119  }
120  return newMappingVersion;
121 }
virtual bool getVersionList(std::set< std::string > &destination)=0
tuple iteration
Definition: align_cfg.py:5
virtual IMappingSchema & mappingSchema()=0
std::set< std::string > m_versions
static std::string newMappingVersionForDependentClass(const std::string &containerName, const std::string &className, int iteration)
IDatabaseSchema & m_schema
The schema in use.
std::string className(const T &t)
Definition: ClassName.h:30
void ora::MappingDatabase::removeMapping ( const std::string &  version)

Definition at line 169 of file MappingDatabase.cc.

169  {
171 }
virtual IMappingSchema & mappingSchema()=0
IDatabaseSchema & m_schema
The schema in use.
virtual void removeMapping(const std::string &version)=0
void ora::MappingDatabase::setMappingVersionForClass ( const Reflex::Type &  dictionaryEntry,
int  containerId,
const std::string &  mappingVersion,
bool  dependency = false 
)

Definition at line 277 of file MappingDatabase.cc.

References ora::MappingRules::classId(), className(), and newFWLiteAna::found.

280  {
281  std::string className = dictionaryEntry.Name( Reflex::SCOPED );
282  std::string classVersion = versionOfClass( dictionaryEntry );
283  std::string classId = MappingRules::classId( className, classVersion );
284  std::string mv("");
285  bool found = m_schema.mappingSchema().selectMappingVersion( classId, containerId, mv );
286  if( !found ){
287  int depIndex = 0;
288  if( dependency ) depIndex = 1;
289  m_schema.mappingSchema().insertClassVersion( className, classVersion, classId, depIndex, containerId, mappingVersion );
290  } else {
291  m_schema.mappingSchema().setMappingVersion( classId, containerId, mappingVersion );
292  }
293 }
virtual bool selectMappingVersion(const std::string &classId, int containerId, std::string &destination)=0
virtual void setMappingVersion(const std::string &classId, int containerId, const std::string &mappingVersion)=0
static std::string versionOfClass(const Reflex::Type &dictionary)
virtual IMappingSchema & mappingSchema()=0
virtual void insertClassVersion(const std::string &className, const std::string &classVersion, const std::string &classId, int dependencyIndex, int containerId, const std::string &mappingVersion)=0
static std::string classId(const std::string &className, const std::string &classVersion)
Definition: MappingRules.cc:46
IDatabaseSchema & m_schema
The schema in use.
std::string className(const T &t)
Definition: ClassName.h:30
void ora::MappingDatabase::storeMapping ( const MappingTree mappingStructure)

Definition at line 295 of file MappingDatabase.cc.

References ora::MappingTree::topElement(), and ora::MappingTree::version().

295  {
296  MappingRawData rowMapping( mapping.version() );
297  unfoldElement( mapping.topElement(), rowMapping );
299  m_schema.mappingSchema().storeMapping( rowMapping );
300 }
NamedSequence m_mappingSequence
void unfoldElement(const MappingElement &element, MappingRawData &destination)
virtual void storeMapping(const MappingRawData &data)=0
virtual IMappingSchema & mappingSchema()=0
IDatabaseSchema & m_schema
The schema in use.
void ora::MappingDatabase::unfoldElement ( const MappingElement element,
MappingRawData destination 
)
private

Definition at line 42 of file MappingDatabase.cc.

References ora::MappingRawData::addElement(), ora::MappingElement::begin(), ora::MappingElement::columnNames(), ora::MappingRawElement::columns, ora::MappingRawElement::elementType, ora::MappingElement::elementType(), ora::MappingElement::elementTypeAsString(), ora::MappingRawElement::emptyScope(), ora::MappingElement::end(), ora::MappingRawElement::scopeName, ora::MappingElement::scopeName(), ora::MappingRawElement::tableName, ora::MappingElement::tableName(), ora::MappingRawElement::variableName, ora::MappingElement::variableName(), ora::MappingRawElement::variableType, and ora::MappingElement::variableType().

42  {
43  int newElemId = m_mappingSequence.getNextId();
44  MappingRawElement& elem = destination.addElement( newElemId );
45  elem.elementType = MappingElement::elementTypeAsString( element.elementType() );
46  elem.scopeName = element.scopeName();
47  if(elem.scopeName.empty()) elem.scopeName = MappingRawElement::emptyScope();
48  elem.variableName = element.variableName();
49  elem.variableType = element.variableType();
50  elem.tableName = element.tableName();
51  elem.columns = element.columnNames();
52  for ( MappingElement::const_iterator iSubEl = element.begin();
53  iSubEl != element.end(); ++iSubEl) {
54  unfoldElement( iSubEl->second, destination );
55  }
56 }
NamedSequence m_mappingSequence
int getNextId(bool sinchronize=false)
Definition: Sequences.cc:69
void unfoldElement(const MappingElement &element, MappingRawData &destination)
static std::string elementTypeAsString(ElementType elementType)
Converts the enumeration type to a string.
static std::string emptyScope()
std::map< std::string, MappingElement >::const_iterator const_iterator
std::string ora::MappingDatabase::versionOfClass ( const Reflex::Type &  dictionary)
static

Definition at line 12 of file MappingDatabase.cc.

References className(), ora::MappingRules::classVersionPropertyNameInDictionary(), and ora::MappingRules::defaultClassVersion().

12  {
13  std::string className = dictionary.Name(Reflex::SCOPED);
14  Reflex::PropertyList classProps = dictionary.Properties();
15  std::string classVersion = MappingRules::defaultClassVersion(className);
16  if(classProps.HasProperty(MappingRules::classVersionPropertyNameInDictionary())){
17  classVersion = classProps.PropertyAsString(MappingRules::classVersionPropertyNameInDictionary());
18  }
19  return classVersion;
20 }
static std::string defaultClassVersion(const std::string &className)
Definition: MappingRules.cc:83
static std::string classVersionPropertyNameInDictionary()
Definition: MappingRules.cc:91
std::string className(const T &t)
Definition: ClassName.h:30
const std::set< std::string > & ora::MappingDatabase::versions ( )

Definition at line 306 of file MappingDatabase.cc.

306  {
307  if(!m_isLoaded){
309  m_isLoaded = true;
310  }
311  return m_versions;
312 }
virtual bool getVersionList(std::set< std::string > &destination)=0
virtual IMappingSchema & mappingSchema()=0
std::set< std::string > m_versions
IDatabaseSchema & m_schema
The schema in use.

Member Data Documentation

bool ora::MappingDatabase::m_isLoaded
private

Definition at line 84 of file MappingDatabase.h.

NamedSequence ora::MappingDatabase::m_mappingSequence
private

Definition at line 82 of file MappingDatabase.h.

IDatabaseSchema& ora::MappingDatabase::m_schema
private

The schema in use.

Definition at line 81 of file MappingDatabase.h.

std::set<std::string> ora::MappingDatabase::m_versions
private

Definition at line 83 of file MappingDatabase.h.

bool ora::MappingDatabase::m_writingEnabled
private

Definition at line 85 of file MappingDatabase.h.