00001 #ifndef FDO_SqlServerOVPHYSICALSCHEMAMAPPING_H
00002 #define FDO_SqlServerOVPHYSICALSCHEMAMAPPING_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/SqlServer/SqlServerOv.h>
00034 #include <Rdbms/Override/SqlServer/SqlServerOvClassCollection.h>
00035 #include <Rdbms/Override/SqlServer/SqlServerOvTextInRowOption.h>
00036
00037 /// \brief
00038 /// Concrete class offering schema overrides for
00039 /// the SqlServer Provider.
00040 class FdoSqlServerOvPhysicalSchemaMapping : public FdoRdbmsOvPhysicalSchemaMapping
00041 {
00042
00043 public:
00044
00045 /// \brief
00046 /// Constructs a default of an FdoSqlServerOvPhysicalSchemaMapping
00047 ///
00048 /// \return
00049 /// Returns FdoSqlServerOvPhysicalSchemaMapping
00050 ///
00051 FDOSQLSERVER_OV_API static FdoSqlServerOvPhysicalSchemaMapping* Create();
00052
00053 /// \brief
00054 /// Constructs an instance of an FdoSqlServerOvPhysicalSchemaMapping using the specified arguments
00055 ///
00056 /// \param name
00057 /// Input name
00058 ///
00059 /// \return
00060 /// Returns FdoSqlServerOvPhysicalSchemaMapping
00061 ///
00062 FDOSQLSERVER_OV_API static FdoSqlServerOvPhysicalSchemaMapping* Create(FdoString* name);
00063
00064 /// \brief
00065 /// Gets the classes
00066 ///
00067 /// \return
00068 /// Returns the classes
00069 ///
00070 FDOSQLSERVER_OV_API FdoSqlServerOvClassCollection* GetClasses();
00071
00072 /// \brief
00073 /// Gets the table Filegroup
00074 ///
00075 /// \return
00076 /// Returns the table Filegroup
00077 ///
00078 FDOSQLSERVER_OV_API FdoString *GetTableFilegroup();
00079
00080 /// \brief
00081 /// Sets the table Filegroup
00082 ///
00083 /// \return
00084 /// Returns nothing
00085 ///
00086 FDOSQLSERVER_OV_API void SetTableFilegroup(FdoString *tableFilegroup);
00087
00088 /// \brief
00089 /// Gets the text Filegroup
00090 ///
00091 /// \return
00092 /// Returns the text Filegroup
00093 ///
00094 FDOSQLSERVER_OV_API FdoString *GetTextFilegroup();
00095
00096 /// \brief
00097 /// Sets the text Filegroup
00098 ///
00099 /// \return
00100 /// Returns nothing
00101 ///
00102 FDOSQLSERVER_OV_API void SetTextFilegroup(FdoString *textFilegroup);
00103
00104 /// \brief
00105 /// Gets the index Filegroup
00106 ///
00107 /// \return
00108 /// Returns the index Filegroup
00109 ///
00110 FDOSQLSERVER_OV_API FdoString *GetIndexFilegroup();
00111
00112 /// \brief
00113 /// Sets the index Filegroup
00114 ///
00115 /// \return
00116 /// Returns nothing
00117 ///
00118 FDOSQLSERVER_OV_API void SetIndexFilegroup(FdoString *indexFilegroup);
00119
00120 /// \brief
00121 /// Gets the text-in-row option
00122 ///
00123 /// \return
00124 /// Returns the text-in-row option
00125 ///
00126 FDOSQLSERVER_OV_API SqlServerOvTextInRowOption GetTextInRow();
00127
00128 /// \brief
00129 /// Sets the text-in-row option
00130 ///
00131 /// \return
00132 /// Returns nothing
00133 ///
00134 FDOSQLSERVER_OV_API void SetTextInRow(SqlServerOvTextInRowOption textInRow);
00135
00136 /// \brief
00137 /// Gets the database
00138 ///
00139 /// \return
00140 /// Returns the database
00141 ///
00142 FDOSQLSERVER_OV_API FdoString *GetDatabase();
00143
00144 /// \brief
00145 /// Sets the database
00146 ///
00147 /// \return
00148 /// Returns nothing
00149 ///
00150 FDOSQLSERVER_OV_API void SetDatabase(FdoString *database);
00151
00152 /// \brief
00153 /// Gets the owner
00154 ///
00155 /// \return
00156 /// Returns the owner
00157 ///
00158 FDOSQLSERVER_OV_API FdoString *GetOwner();
00159
00160 /// \brief
00161 /// Sets the owner
00162 ///
00163 /// \return
00164 /// Returns nothing
00165 ///
00166 FDOSQLSERVER_OV_API void SetOwner(FdoString *owner);
00167
00168 /// \brief
00169 /// Gets the provider name
00170 ///
00171 /// \return
00172 /// Returns the provider name
00173 ///
00174 FDOSQLSERVER_OV_API virtual FdoString *GetProvider(void);
00175
00176 /// \cond DOXYGEN-IGNORE
00177
00178 /// XML Serialization functions, not part of API.
00179
00180 /// Serialize this property to XML.
00181 virtual void _writeXmlAttributes(FdoXmlWriter* xmlWriter, const FdoXmlFlags* flags);
00182
00183 /// Initialize this element from its XML attributes
00184 virtual void InitFromXml(FdoXmlSaxContext* pContext, FdoXmlAttributeCollection* attrs);
00185
00186 /// \endcond
00187
00188 protected:
00189 FdoSqlServerOvPhysicalSchemaMapping();
00190 FdoSqlServerOvPhysicalSchemaMapping(FdoString* name);
00191 virtual ~FdoSqlServerOvPhysicalSchemaMapping();
00192 virtual void Dispose();
00193
00194 /// Create a class override from XML attributes
00195 virtual FdoRdbmsOvClassDefinition* CreateClass(
00196 FdoXmlSaxContext* context,
00197 FdoXmlAttributeCollection* atts
00198 );
00199
00200 /// Add the given class override to this schema override set
00201 virtual void AddClass(
00202 FdoRdbmsOvClassDefinition* pClass
00203 );
00204
00205 /// Common initializer for all constructors:
00206 void Init();
00207
00208 private:
00209 FdoSqlServerOvClassesP mClasses;
00210 FdoStringP mTableFilegroup;
00211 FdoStringP mTextFilegroup;
00212 FdoStringP mIndexFilegroup;
00213 SqlServerOvTextInRowOption mTextInRow;
00214 FdoStringP mDatabase;
00215 FdoStringP mOwner;
00216 };
00217
00218 /// \brief
00219 /// FdoSqlServerOvSchemaMappingP is a FdoPtr on FdoSqlServerOvPhysicalSchemaMapping, provided for convenience.
00220 typedef FdoPtr<FdoSqlServerOvPhysicalSchemaMapping> FdoSqlServerOvSchemaMappingP;
00221
00222 #endif
00223
00224