00001 #ifndef FDO_SqlServerOVTABLE_H
00002 #define FDO_SqlServerOVTABLE_H
00003 /*
00004 * Copyright (C) 2004-2008 Autodesk, Inc.
00005 *
00006 * This library is free software; you can redistribute it and/or
00007 * modify it under the terms of version 2.1 of the GNU Lesser
00008 * General Public License as published by the Free Software Foundation.
00009 *
00010 * This library is distributed in the hope that it will be useful,
00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00013 * Lesser General Public License for more details.
00014 *
00015 * You should have received a copy of the GNU Lesser General Public
00016 * License along with this library; if not, write to the Free Software
00017 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
00018 *
00019 */
00020
00021 #include <Rdbms/Override/RdbmsOvTable.h>
00022 #include <Rdbms/Override/SQLServerSpatial/SqlServerOv.h>
00023 #include <Rdbms/Override/SQLServerSpatial/SqlServerOvTextInRowOption.h>
00024
00025
00026 /// \brief
00027 /// Concrete class defining physical schema overrides for a table.
00028 class FdoSqlServerOvTable : public FdoRdbmsOvTable
00029 {
00030
00031 public:
00032 /// \brief
00033 /// Constructs a default of an FdoSqlServerOvTable
00034 ///
00035 /// \return
00036 /// Returns FdoSqlServerOvTable
00037 ///
00038 FDOSQLSERVER_OV_API static FdoSqlServerOvTable* Create();
00039
00040 /// \brief
00041 /// Constructs an instance of an FdoSqlServerOvTable using the specified arguments
00042 ///
00043 /// \param name
00044 /// Input name
00045 ///
00046 /// \return
00047 /// Returns FdoSqlServerOvTable
00048 ///
00049 FDOSQLSERVER_OV_API static FdoSqlServerOvTable* Create(FdoString *name);
00050
00051 /// \brief
00052 /// Gets the table filegroup
00053 ///
00054 /// \return
00055 /// Returns the table filegroup
00056 ///
00057 FDOSQLSERVER_OV_API FdoString *GetTableFilegroup();
00058
00059 /// \brief
00060 /// Sets the table filegroup
00061 ///
00062 /// \return
00063 /// Returns nothing
00064 ///
00065 FDOSQLSERVER_OV_API void SetTableFilegroup(FdoString *tableFilegroup);
00066
00067 /// \brief
00068 /// Gets the text filegroup
00069 ///
00070 /// \return
00071 /// Returns the text filegroup
00072 ///
00073 FDOSQLSERVER_OV_API FdoString *GetTextFilegroup();
00074
00075 /// \brief
00076 /// Sets the text filegroup
00077 ///
00078 /// \return
00079 /// Returns nothing
00080 ///
00081 FDOSQLSERVER_OV_API void SetTextFilegroup(FdoString *textFilegroup);
00082
00083 /// \brief
00084 /// Gets the index filegroup
00085 ///
00086 /// \return
00087 /// Returns the index filegroup
00088 ///
00089 FDOSQLSERVER_OV_API FdoString *GetIndexFilegroup();
00090
00091 /// \brief
00092 /// Sets the index filegroup
00093 ///
00094 /// \return
00095 /// Returns nothing
00096 ///
00097 FDOSQLSERVER_OV_API void SetIndexFilegroup(FdoString *indexFilegroup);
00098
00099 /// \brief
00100 /// Gets the text-in-row option
00101 ///
00102 /// \return
00103 /// Returns the text-in-row option
00104 ///
00105 FDOSQLSERVER_OV_API SqlServerOvTextInRowOption GetTextInRow();
00106
00107 /// \brief
00108 /// Sets the text-in-row option
00109 ///
00110 /// \return
00111 /// Returns nothing
00112 ///
00113 FDOSQLSERVER_OV_API void SetTextInRow(SqlServerOvTextInRowOption textInRow);
00114
00115 /// \brief
00116 /// Gets the database
00117 ///
00118 /// \return
00119 /// Returns the database
00120 ///
00121 FDOSQLSERVER_OV_API FdoString *GetDatabase();
00122
00123 /// \brief
00124 /// Sets the database
00125 ///
00126 /// \return
00127 /// Returns nothing
00128 ///
00129 FDOSQLSERVER_OV_API void SetDatabase(FdoString *database);
00130
00131 /// \brief
00132 /// Gets the owner
00133 ///
00134 /// \return
00135 /// Returns the owner
00136 ///
00137 FDOSQLSERVER_OV_API FdoString *GetOwner();
00138
00139 /// \brief
00140 /// Sets the owner
00141 ///
00142 /// \return
00143 /// Returns nothing
00144 ///
00145 FDOSQLSERVER_OV_API void SetOwner(FdoString *owner);
00146
00147
00148 /// \cond DOXYGEN-IGNORE
00149
00150 /// XML Serialization functions, not part of the API.
00151
00152 /// Serialize this property to XML.
00153 virtual void _writeXmlContents(FdoXmlWriter* xmlWriter, const FdoXmlFlags* flags);
00154
00155 /// Initialize this element from its XML attributes
00156 virtual void InitFromXml(FdoXmlSaxContext* pContext, FdoXmlAttributeCollection* attrs);
00157
00158 /// Sets the parent of this object. Not part of the API.
00159 void SetParent(FdoPhysicalElementMapping* value);
00160
00161 /// Common initializer for all constructors:
00162 void Init();
00163
00164 /// \endcond
00165
00166 protected:
00167 FdoSqlServerOvTable();
00168 FdoSqlServerOvTable(FdoString *name);
00169 virtual ~FdoSqlServerOvTable();
00170 virtual void Dispose();
00171
00172 private:
00173 FdoStringP mTableFilegroup;
00174 FdoStringP mTextFilegroup;
00175 FdoStringP mIndexFilegroup;
00176 SqlServerOvTextInRowOption mTextInRow;
00177 FdoStringP mDatabase;
00178 FdoStringP mOwner;
00179 };
00180
00181 /// \brief
00182 /// FdoSqlServerOvTableP is a FdoPtr on FdoSqlServerOvTable, provided for convenience.
00183 typedef FdoPtr<FdoSqlServerOvTable> FdoSqlServerOvTableP;
00184
00185 #endif
00186
00187