00001 #ifndef FDO_ORACLEOVPHYSICALSCHEMAMAPPING_H
00002 #define FDO_ORACLEOVPHYSICALSCHEMAMAPPING_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/RdbmsOvPhysicalSchemaMapping.h>
00033 #include <Rdbms/Override/Oracle/OracleOv.h>
00034 #include <Rdbms/Override/Oracle/OracleOvClassCollection.h>
00035
00036 /// \brief
00037 /// Concrete class offering schema overrides for
00038 /// the Oracle Provider.
00039 class FdoOracleOvPhysicalSchemaMapping : public FdoRdbmsOvPhysicalSchemaMapping
00040 {
00041
00042 public:
00043
00044 /// \brief
00045 /// Constructs a default of an FdoOracleOvPhysicalSchemaMapping
00046 ///
00047 /// \return
00048 /// Returns FdoOracleOvPhysicalSchemaMapping
00049 ///
00050 FDOORACLE_OV_API static FdoOracleOvPhysicalSchemaMapping* Create();
00051
00052 /// \brief
00053 /// Constructs an instance of an FdoOracleOvPhysicalSchemaMapping using the specified arguments
00054 ///
00055 /// \param name
00056 /// Input name
00057 ///
00058 /// \return
00059 /// Returns FdoOracleOvPhysicalSchemaMapping
00060 ///
00061 FDOORACLE_OV_API static FdoOracleOvPhysicalSchemaMapping* Create(FdoString* name);
00062
00063 /// \brief
00064 /// Gets the classes
00065 ///
00066 /// \return
00067 /// Returns the classes
00068 ///
00069 FDOORACLE_OV_API FdoOracleOvClassCollection* GetClasses();
00070
00071 /// \brief
00072 /// Gets the tablespace
00073 ///
00074 /// \return
00075 /// Returns the tablespace
00076 ///
00077 FDOORACLE_OV_API FdoString *GetTablespace();
00078
00079 /// \brief
00080 /// Sets the tablespace
00081 ///
00082 /// \return
00083 /// Returns nothing
00084 ///
00085 FDOORACLE_OV_API void SetTablespace(FdoString *tablespace);
00086
00087 /// \brief
00088 /// Gets the database
00089 ///
00090 /// \return
00091 /// Returns the database
00092 ///
00093 FDOORACLE_OV_API FdoString *GetDatabase();
00094
00095 /// \brief
00096 /// Sets the database
00097 ///
00098 /// \return
00099 /// Returns nothing
00100 ///
00101 FDOORACLE_OV_API void SetDatabase(FdoString *database);
00102
00103 /// \brief
00104 /// Gets the owner
00105 ///
00106 /// \return
00107 /// Returns the owner
00108 ///
00109 FDOORACLE_OV_API FdoString *GetOwner();
00110
00111 /// \brief
00112 /// Sets the owner
00113 ///
00114 /// \return
00115 /// Returns nothing
00116 ///
00117 FDOORACLE_OV_API void SetOwner(FdoString *owner);
00118
00119 /// \brief
00120 /// Gets the provider name
00121 ///
00122 /// \return
00123 /// Returns the provider name
00124 ///
00125 FDOORACLE_OV_API virtual FdoString *GetProvider(void);
00126
00127 /// \cond DOXYGEN-IGNORE
00128
00129 /// XML Serialization functions, not part of API.
00130
00131 /// Serialize this property to XML.
00132 virtual void _writeXmlAttributes(FdoXmlWriter* xmlWriter, const FdoXmlFlags* flags);
00133
00134 /// Initialize this element from its XML attributes
00135 virtual void InitFromXml(FdoXmlSaxContext* pContext, FdoXmlAttributeCollection* attrs);
00136
00137 /// \endcond
00138
00139 protected:
00140 FdoOracleOvPhysicalSchemaMapping();
00141 FdoOracleOvPhysicalSchemaMapping(FdoString* name);
00142 virtual ~FdoOracleOvPhysicalSchemaMapping();
00143 virtual void Dispose();
00144
00145 /// Create a class override from XML attributes
00146 virtual FdoRdbmsOvClassDefinition* CreateClass(
00147 FdoXmlSaxContext* context,
00148 FdoXmlAttributeCollection* atts
00149 );
00150
00151 /// Add the given class override to this schema override set
00152 virtual void AddClass(
00153 FdoRdbmsOvClassDefinition* pClass
00154 );
00155
00156 private:
00157 FdoOracleOvClassesP mClasses;
00158 FdoStringP mTablespace;
00159 FdoStringP mDatabase;
00160 FdoStringP mOwner;
00161 };
00162
00163 /// \brief
00164 /// FdoOracleOvSchemaMappingP is a FdoPtr on FdoOracleOvPhysicalSchemaMapping, provided for convenience.
00165 typedef FdoPtr<FdoOracleOvPhysicalSchemaMapping> FdoOracleOvSchemaMappingP;
00166
00167 #endif
00168
00169