API Reference | OSGeo FDO Provider for ODBC |
00001 #ifndef FDO_ODBCOVCLASSDEFINITION_H 00002 #define FDO_ODBCOVCLASSDEFINITION_H 00003 // 00004 // 00005 // Copyright (C) 2004-2006 Autodesk, Inc. 00006 // 00007 // This library is free software; you can redistribute it and/or 00008 // modify it under the terms of version 2.1 of the GNU Lesser 00009 // General Public License as published by the Free Software Foundation. 00010 // 00011 // This library is distributed in the hope that it will be useful, 00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 // Lesser General Public License for more details. 00015 // 00016 // You should have received a copy of the GNU Lesser General Public 00017 // License along with this library; if not, write to the Free Software 00018 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00019 // 00020 #include <Rdbms/Override/RdbmsOvClassDefinition.h> 00021 #include <Rdbms/Override/ODBC/OdbcOv.h> 00022 #include <Rdbms/Override/ODBC/OdbcOvDataPropertyDefinition.h> 00023 #include <Rdbms/Override/ODBC/OdbcOvGeometricPropertyDefinition.h> 00024 #include <Rdbms/Override/ODBC/OdbcOvPropertyDefinitionCollection.h> 00025 #include <Rdbms/Override/ODBC/OdbcOvTable.h> 00026 00027 /// \brief 00028 /// Concrete class defining physical schema overrides for a class definition. 00029 class FdoOdbcOvClassDefinition : public FdoRdbmsOvClassDefinition 00030 { 00031 00032 public: 00033 /// \brief 00034 /// Constructs a default of an FdoOdbcOvClassDefinition 00035 /// 00036 /// \return 00037 /// Returns FdoOdbcOvClassDefinition 00038 /// 00039 FDOODBC_OV_API static FdoOdbcOvClassDefinition* Create(); 00040 00041 /// \brief 00042 /// Constructs an instance of an FdoOdbcOvClassDefinition using the specified arguments 00043 /// 00044 /// \param name 00045 /// Input name 00046 /// 00047 /// \return 00048 /// Returns FdoOdbcOvClassDefinition 00049 /// 00050 FDOODBC_OV_API static FdoOdbcOvClassDefinition* Create(FdoString* name); 00051 00052 /// \brief 00053 /// Gets a collection of Odbc property overrides 00054 /// 00055 /// \return 00056 /// Returns the collection of Odbc property overrides 00057 /// 00058 FDOODBC_OV_API FdoOdbcOvPropertyDefinitionCollection* GetProperties(); 00059 00060 /// \brief 00061 /// Gets the Odbc table override for this class override 00062 /// 00063 /// \return 00064 /// Returns FdoOdbcOvTable 00065 /// 00066 FDOODBC_OV_API FdoOdbcOvTable* GetTable(); 00067 00068 /// \brief 00069 /// Sets the Odbc table override for this class override 00070 /// 00071 /// \param name 00072 /// Input Odbc table override 00073 /// 00074 /// \return 00075 /// Returns nothing 00076 /// 00077 FDOODBC_OV_API void SetTable(FdoOdbcOvTable* table); 00078 00079 00080 /// \cond DOXYGEN-IGNORE 00081 00082 /// Sets the parent of this object. Not part of the API. 00083 void SetParent(FdoPhysicalElementMapping* value); 00084 00085 /// Initialize this element from its XML attributes 00086 virtual void InitFromXml(FdoXmlSaxContext* pContext, FdoXmlAttributeCollection* attrs); 00087 00088 /// Serialize the XML attributes of this class: 00089 virtual void _writeXmlAttributes(FdoXmlWriter* xmlWriter, const FdoXmlFlags* flags); 00090 00091 /// \endcond 00092 00093 protected: 00094 FdoOdbcOvClassDefinition(); 00095 FdoOdbcOvClassDefinition(FdoString *name); 00096 00097 virtual ~FdoOdbcOvClassDefinition(); 00098 void Init(); 00099 virtual void Dispose(); 00100 00101 /// Create table override from XML attributes 00102 virtual void SetTable( 00103 FdoXmlSaxContext* context, 00104 FdoXmlAttributeCollection* atts 00105 ); 00106 00107 /// Create data property override from XML attributes 00108 virtual FdoRdbmsOvDataPropertyDefinition* CreateDataProperty( 00109 FdoXmlSaxContext* context, 00110 FdoXmlAttributeCollection* propAtts, 00111 FdoXmlAttributeCollection* colAtts 00112 ); 00113 00114 /// Create geometric property override from XML attributes 00115 virtual FdoRdbmsOvGeometricPropertyDefinition* CreateGeometricProperty( 00116 FdoXmlSaxContext* context, 00117 FdoXmlAttributeCollection* propAtts, 00118 FdoXmlAttributeCollection* colAtts 00119 ); 00120 00121 /// Add the given property override to this class override 00122 virtual void AddProperty( 00123 FdoRdbmsOvPropertyDefinition* pProp 00124 ); 00125 00126 private: 00127 FdoOdbcOvPropertiesP mPropertyDefinitions; 00128 }; 00129 00130 00131 /// \brief 00132 /// FdoOdbcOvClassP is a FdoPtr on FdoOdbcOvClassDefinition, provided for convenience. 00133 typedef FdoPtr<FdoOdbcOvClassDefinition> FdoOdbcOvClassP; 00134 00135 #endif 00136 00137
Comments? |