00001 //
00002 // Copyright (C) 2006 Refractions Research, Inc.
00003 //
00004 // This library is free software; you can redistribute it and/or
00005 // modify it under the terms of version 2.1 of the GNU Lesser
00006 // General Public License as published by the Free Software Foundation.
00007 //
00008 // This library is distributed in the hope that it will be useful,
00009 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00010 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00011 // Lesser General Public License for more details.
00012 //
00013 // You should have received a copy of the GNU Lesser General Public
00014 // License along with this library; if not, write to the Free Software
00015 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
00016 //
00017 #ifndef FDOPOSTGISOVTABLE_H
00018 #define FDOPOSTGISOVTABLE_H
00019
00020 #include <Rdbms/Override/RdbmsOvTable.h>
00021 #include <Rdbms/Override/PostGIS/PostGisOv.h>
00022
00023 /// \brief
00024 /// Concrete class defining physical schema overrides for a table.
00025 /// This class is used in PostGIS schema overrides.
00026 ///
00027 class FdoPostGISOvTable : public FdoRdbmsOvTable
00028 {
00029 public:
00030
00031 /// Named constructor for FdoPostGISOvColumn.
00032 ///
00033 /// \return
00034 /// Pointer to new instance of FdoPostGISOvColumn.
00035 ///
00036 FDOPOSTGIS_OV_API static FdoPostGISOvTable* Create();
00037
00038 /// Named constructor for FdoPostGISOvTable.
00039 ///
00040 /// \param
00041 /// name [in] - name of table.
00042 ///
00043 /// \return
00044 /// Pointer to new instance of FdoPostGISOvTable.
00045 ///
00046 FDOPOSTGIS_OV_API static FdoPostGISOvTable* Create(FdoString* name);
00047
00048 /// \brief
00049 /// Gets the owner
00050 ///
00051 /// \return
00052 /// Returns the owner
00053 ///
00054 FDOPOSTGIS_OV_API FdoString* GetOwner();
00055
00056 /// \brief
00057 /// Sets the owner
00058 ///
00059 /// \return
00060 /// Returns nothing
00061 ///
00062 FDOPOSTGIS_OV_API void SetOwner(FdoString* owner);
00063
00064
00065 /// \cond DOXYGEN-IGNORE
00066
00067 /// XML Serialization functions, not part of the API.
00068
00069 /// Serialize this property to XML.
00070 virtual void _writeXmlContents(FdoXmlWriter* xmlWriter,
00071 const FdoXmlFlags* flags);
00072
00073 /// Initialize this element from its XML attributes
00074 virtual void InitFromXml(FdoXmlSaxContext* saxContext,
00075 FdoXmlAttributeCollection* attrs);
00076
00077 /// Sets the parent of this object. Not part of the API.
00078 void SetParent(FdoPhysicalElementMapping* value);
00079
00080 /// \endcond
00081
00082 protected:
00083
00084 FdoPostGISOvTable();
00085 FdoPostGISOvTable(FdoString* name);
00086 virtual ~FdoPostGISOvTable();
00087 virtual void Dispose();
00088
00089 /// Named constructor.
00090 /// Called from class constructors.
00091 void Init();
00092
00093 private:
00094 FdoStringP mOwner;
00095 };
00096
00097 /// \brief
00098 /// Declaration of smart-pointer type for FdoPostGISOvTable.
00099 /// Provided for convenience.
00100 typedef FdoPtr<FdoPostGISOvTable> FdoPostGISOvTableP;
00101
00102 #endif // FDOPOSTGISOVTABLE_H