OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ossimVpfFeatureClassSchema Class Reference

#include <ossimVpfFeatureClassSchema.h>

Inheritance diagram for ossimVpfFeatureClassSchema:
ossimVpfTable

Public Member Functions

 ossimVpfFeatureClassSchema ()
 
bool openSchema (ossimVpfCoverage *coverage)
 
virtual void closeTable ()
 
void getFeatureClasses (std::vector< ossimString > &featureClassArray) const
 
bool getFeatureClassNode (const ossimString &featureClass, ossimVpfFeatureClassSchemaNode &featureClassNode) const
 
ossim_int32 getNumberOfFeatureClasses () const
 
- Public Member Functions inherited from ossimVpfTable
 ossimVpfTable ()
 
virtual ~ossimVpfTable ()
 
virtual bool openTable (const ossimFilename &tableName)
 
virtual void print (std::ostream &out) const
 
int getNumberOfRows () const
 
int getNumberOfColumns () const
 
ossimString getColumnName (int idx) const
 
virtual bool isClosed () const
 
virtual void reset () const
 
virtual bool goToRow (long row) const
 
vpf_table_typegetVpfTableData ()
 
std::vector< ossimStringgetColumnValues (const ossimString &columnName) const
 
std::vector< ossimStringgetColumnValues (long columnNumber) const
 
ossimString getColumnValueAsString (row_type &row, long columnNumber) const
 
ossimString getColumnValueAsString (ossim_int32 rowNumber, long columnNumber) const
 
ossimString getColumnValueAsString (const ossimString &columnName)
 
ossim_int32 getColumnPosition (const ossimString &columnName) const
 

Protected Member Functions

bool validateColumnNames () const
 
void setFeatureClassMapping ()
 

Protected Attributes

ossimVpfCoveragetheCoverage
 
ossimFilename theSchemaTableName
 
std::map< ossimString, ossimVpfFeatureClassSchemaNode, ossimStringLtstrtheFeatureClassMap
 
- Protected Attributes inherited from ossimVpfTable
vpf_table_typetheTableInformation
 
ossimFilename theTableName
 

Detailed Description

Definition at line 48 of file ossimVpfFeatureClassSchema.h.

Constructor & Destructor Documentation

◆ ossimVpfFeatureClassSchema()

ossimVpfFeatureClassSchema::ossimVpfFeatureClassSchema ( )

Definition at line 17 of file ossimVpfFeatureClassSchema.cpp.

18  :theCoverage(NULL)
19 {
20 }

Member Function Documentation

◆ closeTable()

void ossimVpfFeatureClassSchema::closeTable ( )
virtual

Closes the table.

Reimplemented from ossimVpfTable.

Definition at line 49 of file ossimVpfFeatureClassSchema.cpp.

References ossimVpfTable::closeTable(), and theFeatureClassMap.

Referenced by ossimVpfAnnotationCoverageInfo::buildCoverage(), and ossimVpfCoverage::openFeatureClassSchema().

50 {
52  theFeatureClassMap.clear();
53 }
virtual void closeTable()
std::map< ossimString, ossimVpfFeatureClassSchemaNode, ossimStringLtstr > theFeatureClassMap

◆ getFeatureClasses()

void ossimVpfFeatureClassSchema::getFeatureClasses ( std::vector< ossimString > &  featureClassArray) const

Definition at line 55 of file ossimVpfFeatureClassSchema.cpp.

References theFeatureClassMap.

Referenced by ossimVpfAnnotationCoverageInfo::buildCoverage().

56 {
57  featureClassArray.clear();
58  std::map<ossimString, ossimVpfFeatureClassSchemaNode, ossimStringLtstr>::const_iterator featureClassIter = theFeatureClassMap.begin();
59 
60  while(featureClassIter != theFeatureClassMap.end())
61  {
62  featureClassArray.push_back((*featureClassIter).first);
63  ++featureClassIter;
64  }
65 }
std::map< ossimString, ossimVpfFeatureClassSchemaNode, ossimStringLtstr > theFeatureClassMap

◆ getFeatureClassNode()

bool ossimVpfFeatureClassSchema::getFeatureClassNode ( const ossimString featureClass,
ossimVpfFeatureClassSchemaNode featureClassNode 
) const

Definition at line 67 of file ossimVpfFeatureClassSchema.cpp.

References theFeatureClassMap.

Referenced by ossimVpfAnnotationFeatureInfo::buildFeature().

69 {
70  std::map<ossimString, ossimVpfFeatureClassSchemaNode, ossimStringLtstr>::const_iterator fIter = theFeatureClassMap.find(featureClass);
71 
72  if(fIter != theFeatureClassMap.end())
73  {
74  featureClassNode = (*fIter).second;
75  return true;
76  }
77 
78  return false;
79 }
std::map< ossimString, ossimVpfFeatureClassSchemaNode, ossimStringLtstr > theFeatureClassMap

◆ getNumberOfFeatureClasses()

ossim_int32 ossimVpfFeatureClassSchema::getNumberOfFeatureClasses ( ) const

Definition at line 81 of file ossimVpfFeatureClassSchema.cpp.

References theFeatureClassMap.

82 {
83  return (ossim_int32)theFeatureClassMap.size();
84 }
std::map< ossimString, ossimVpfFeatureClassSchemaNode, ossimStringLtstr > theFeatureClassMap
int ossim_int32

◆ openSchema()

bool ossimVpfFeatureClassSchema::openSchema ( ossimVpfCoverage coverage)

Definition at line 22 of file ossimVpfFeatureClassSchema.cpp.

References ossimFilename::dirCat(), ossimFilename::exists(), ossimVpfCoverage::getPath(), ossimVpfTable::openTable(), setFeatureClassMapping(), theCoverage, theSchemaTableName, and validateColumnNames().

Referenced by ossimVpfCoverage::openFeatureClassSchema().

23 {
24  theCoverage = coverage;
25  bool result = false;
26 
27  if(theCoverage)
28  {
30 
32  {
33  result = openTable(theSchemaTableName);
34 
35  if(result)
36  {
37  result = validateColumnNames();
38  }
39  if(result)
40  {
42  }
43  }
44  }
45 
46  return result;
47 }
virtual bool openTable(const ossimFilename &tableName)
const ossimFilename & getPath() const
bool exists() const
ossimFilename dirCat(const ossimFilename &file) const

◆ setFeatureClassMapping()

void ossimVpfFeatureClassSchema::setFeatureClassMapping ( )
protected

Definition at line 96 of file ossimVpfFeatureClassSchema.cpp.

References free_row(), ossimVpfTable::getColumnPosition(), ossimVpfTable::getColumnValueAsString(), ossimVpfTable::getNumberOfRows(), ossimVpfTable::isClosed(), ossimVpfFeatureClass::isPrimitive(), read_next_row(), read_row(), ossimVpfTable::reset(), theFeatureClassMap, and ossimVpfTable::theTableInformation.

Referenced by openSchema().

97 {
98  if(!isClosed())
99  {
100  ossim_int32 featureIdx = getColumnPosition("feature_class");
101  ossim_int32 table1Idx = getColumnPosition("table1");
102  ossim_int32 table1KeyIdx = getColumnPosition("table1_key");
103  ossim_int32 table2Idx = getColumnPosition("table2");
104  ossim_int32 table2KeyIdx = getColumnPosition("table2_key");
105  reset();
106  if(getNumberOfRows() > 0)
107  {
108  row_type row;
109  const int ROWS = getNumberOfRows();
110  for(int rowIdx = 1; rowIdx <= ROWS; ++rowIdx)
111  {
112  if(rowIdx == 1)
113  {
114  row = read_row(rowIdx,
116  }
117  else
118  {
120  }
121  ossimFilename primitiveTable = getColumnValueAsString(row,
122  table2Idx);
123  if(ossimVpfFeatureClass::isPrimitive(primitiveTable))
124  {
125  ossimString primitiveTableKey = getColumnValueAsString(row,
126  table2KeyIdx);
128  table1Idx);
129  ossimString tableKey = getColumnValueAsString(row,
130  table1KeyIdx);
131  ossimString featureClass = getColumnValueAsString(row,
132  featureIdx);
134  tableKey,
135  primitiveTable,
136  primitiveTableKey);
137 
138  theFeatureClassMap.insert(make_pair(featureClass,
139  node));
140  }
141 
143  }
144  }
145  }
146 }
vpf_table_type * theTableInformation
Definition: ossimVpfTable.h:81
void free_row(row_type row, vpf_table_type table)
int getNumberOfRows() const
static bool isPrimitive(const ossimString &featureName)
row_type read_row(ossim_int32 row_number, vpf_table_type table)
std::map< ossimString, ossimVpfFeatureClassSchemaNode, ossimStringLtstr > theFeatureClassMap
ossim_int32 getColumnPosition(const ossimString &columnName) const
virtual bool isClosed() const
virtual void reset() const
ossimString getColumnValueAsString(row_type &row, long columnNumber) const
row_type read_next_row(vpf_table_type table)
int ossim_int32

◆ validateColumnNames()

bool ossimVpfFeatureClassSchema::validateColumnNames ( ) const
protected

Definition at line 86 of file ossimVpfFeatureClassSchema.cpp.

References ossimVpfTable::getColumnPosition(), and ossimVpfTable::isClosed().

Referenced by openSchema().

87 {
88  if(isClosed()) return false;
89  return ((getColumnPosition("feature_class")>=0)&&
90  (getColumnPosition("table1")>=0)&&
91  (getColumnPosition("table1_key")>=0)&&
92  (getColumnPosition("table2")>=0)&&
93  (getColumnPosition("table2_key")>=0));
94 }
ossim_int32 getColumnPosition(const ossimString &columnName) const
virtual bool isClosed() const

Member Data Documentation

◆ theCoverage

ossimVpfCoverage* ossimVpfFeatureClassSchema::theCoverage
protected

Definition at line 61 of file ossimVpfFeatureClassSchema.h.

Referenced by openSchema().

◆ theFeatureClassMap

std::map<ossimString, ossimVpfFeatureClassSchemaNode, ossimStringLtstr> ossimVpfFeatureClassSchema::theFeatureClassMap
protected

◆ theSchemaTableName

ossimFilename ossimVpfFeatureClassSchema::theSchemaTableName
protected

Definition at line 62 of file ossimVpfFeatureClassSchema.h.

Referenced by openSchema().


The documentation for this class was generated from the following files: