Autodesk FDO Provider for Oracle API Reference

Oracle Provider API

API Reference Autodesk FDO Provider for Oracle

OracleOvClassDefinition.h

Go to the documentation of this file.
00001 #ifndef FDO_ORACLEOVCLASSDEFINITION_H
00002 #define FDO_ORACLEOVCLASSDEFINITION_H
00003 //
00004 //
00005 // (C) Copyright 1990-2005 by Autodesk, Inc.
00006 //
00007 //
00008 //
00009 // By using this code, you are agreeing to the terms
00010 // and conditions of the License Agreement that appeared
00011 // and was accepted upon download or installation
00012 // (or in connection with the download or installation)
00013 // of the Autodesk software in which this code is included.
00014 // All permissions on use of this code are as set forth
00015 // in such License Agreement provided that the above copyright
00016 // notice appears in all authorized copies and that both that
00017 // copyright notice and the limited warranty and
00018 // restricted rights notice below appear in all supporting
00019 // documentation.
00020 //
00021 // AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
00022 // AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
00023 // MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE.  AUTODESK, INC.
00024 // DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
00025 // UNINTERRUPTED OR ERROR FREE.
00026 //
00027 // Use, duplication, or disclosure by the U.S. Government is subject to
00028 // restrictions set forth in FAR 52.227-19 (Commercial Computer
00029 // Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
00030 // (Rights in Technical Data and Computer Software), as applicable.
00031 //
00032 #include <Rdbms/Override/RdbmsOvClassDefinition.h>
00033 #include <Rdbms/Override/Oracle/OracleOv.h>
00034 #include <Rdbms/Override/Oracle/OracleOvDataPropertyDefinition.h>
00035 #include <Rdbms/Override/Oracle/OracleOvGeometricPropertyDefinition.h>
00036 #include <Rdbms/Override/Oracle/OracleOvObjectPropertyDefinition.h>
00037 #include <Rdbms/Override/Oracle/OracleOvPropertyDefinitionCollection.h>
00038 #include <Rdbms/Override/Oracle/OracleOvTable.h>
00039 #include <Rdbms/Override/Oracle/OracleOvGeometricColumn.h>
00040 
00041 /// \brief
00042 /// Concrete class defining physical schema overrides for a class definition.
00043 class FdoOracleOvClassDefinition : public FdoRdbmsOvClassDefinition
00044 {
00045 
00046 public:
00047     /// \brief
00048     /// Constructs a default of an FdoOracleOvClassDefinition
00049     /// 
00050     /// \return
00051     /// Returns FdoOracleOvClassDefinition
00052     /// 
00053     FDOORACLE_OV_API static FdoOracleOvClassDefinition* Create();
00054 
00055     /// \brief
00056     /// Constructs an instance of an FdoOracleOvClassDefinition using the specified arguments
00057     /// 
00058     /// \param name 
00059     /// Input name
00060     /// 
00061     /// \return
00062     /// Returns FdoOracleOvClassDefinition
00063     /// 
00064     FDOORACLE_OV_API static FdoOracleOvClassDefinition* Create(FdoString* name);
00065 
00066     /// \brief
00067     /// Gets a collection of Oracle property overrides
00068     /// 
00069     /// \return
00070     /// Returns the collection of Oracle property overrides
00071     /// 
00072     FDOORACLE_OV_API FdoOracleOvPropertyDefinitionCollection* GetProperties();
00073 
00074     /// \brief
00075     /// Gets the Oracle table override for this class override
00076     /// 
00077     /// \return
00078     /// Returns FdoOracleOvTable
00079     /// 
00080     FDOORACLE_OV_API FdoOracleOvTable* GetTable();
00081 
00082     /// \brief
00083     /// Sets the Oracle table override for this class override
00084     /// 
00085     /// \param name 
00086     /// Input Oracle table override
00087     /// 
00088     /// \return
00089     /// Returns nothing
00090     /// 
00091     FDOORACLE_OV_API void SetTable(FdoOracleOvTable* table);
00092 
00093 /// \cond DOXYGEN-IGNORE
00094 
00095     /// Sets the parent of this object. Not part of the API.
00096     void SetParent(FdoPhysicalElementMapping* value);
00097 
00098 /// \endcond
00099 
00100 protected:
00101     FdoOracleOvClassDefinition();
00102     FdoOracleOvClassDefinition(FdoString *name);
00103 
00104     virtual ~FdoOracleOvClassDefinition();
00105     void Init();
00106     virtual void Dispose();
00107 
00108     /// Create table override from XML attributes
00109     virtual void SetTable(
00110         FdoXmlSaxContext* context,
00111         FdoXmlAttributeCollection* atts
00112     );
00113 
00114     /// Create data property override from XML attributes
00115     virtual FdoRdbmsOvDataPropertyDefinition* CreateDataProperty( 
00116         FdoXmlSaxContext* context,
00117         FdoXmlAttributeCollection* propAtts,
00118         FdoXmlAttributeCollection* colAtts
00119     );
00120 
00121     /// Create geometric property override from XML attributes
00122     virtual FdoRdbmsOvGeometricPropertyDefinition* CreateGeometricProperty( 
00123         FdoXmlSaxContext* context,
00124         FdoXmlAttributeCollection* propAtts,
00125         FdoXmlAttributeCollection* colAtts
00126     );
00127 
00128     /// Create object property override from XML attributes
00129     virtual FdoRdbmsOvObjectPropertyDefinition* CreateObjectProperty( 
00130         FdoXmlSaxContext* context,
00131         FdoXmlAttributeCollection* propAtts,
00132         FdoString* mappingType,
00133         FdoXmlAttributeCollection* mappingAtts
00134     );
00135 
00136     /// Add the given property override to this class override
00137     virtual void AddProperty( 
00138         FdoRdbmsOvPropertyDefinition* pProp
00139     );
00140 
00141 private:
00142     FdoOracleOvPropertiesP  mPropertyDefinitions;
00143 };
00144 
00145 
00146 /// \brief
00147 /// FdoOracleOvClassP is a FdoPtr on FdoOracleOvClassDefinition, provided for convenience.
00148 typedef FdoPtr<FdoOracleOvClassDefinition> FdoOracleOvClassP;
00149 
00150 #endif
00151 
00152 

Comments?