OSGeo FDO Provider for ODBC API Reference

OSGeo FDO Provider for ODBC API

API Reference OSGeo FDO Provider for ODBC

PostGisOvPhysicalSchemaMapping.h

Go to the documentation of this file.
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 FDOPOSTGISOVPHYSICALSCHEMAMAPPING_H
00018 #define FDOPOSTGISOVPHYSICALSCHEMAMAPPING_H
00019 
00020 #include <Rdbms/Override/RdbmsOvPhysicalSchemaMapping.h>
00021 #include <Rdbms/Override/PostGIS/PostGisOv.h>
00022 #include <Rdbms/Override/PostGIS/PostGisOvClassCollection.h>
00023 
00024 /// \brief
00025 /// Concrete class offering physical schema mapping overrides.
00026 /// This class is used in PostGIS schema overrides.
00027 ///
00028 class FdoPostGISOvPhysicalSchemaMapping :
00029     public FdoRdbmsOvPhysicalSchemaMapping
00030 {
00031 public:
00032 
00033     /// \brief
00034     /// Constructs a default of an FdoPostGISOvPhysicalSchemaMapping.
00035     /// 
00036     /// \return
00037     /// Returns FdoPostGISOvPhysicalSchemaMapping
00038     /// 
00039     FDOPOSTGIS_OV_API static FdoPostGISOvPhysicalSchemaMapping* Create();
00040 
00041     /// \brief
00042     /// Constructs an instance of an FdoPostGISOvPhysicalSchemaMapping
00043     /// using the specified arguments.
00044     /// 
00045     /// \param name 
00046     /// Input name
00047     /// 
00048     /// \return
00049     /// Returns FdoPostGISOvPhysicalSchemaMapping
00050     /// 
00051     FDOPOSTGIS_OV_API static FdoPostGISOvPhysicalSchemaMapping* Create(
00052         FdoString* name);
00053 
00054     /// \brief
00055     /// Gets the classes
00056     /// 
00057     /// \return
00058     /// Returns the classes
00059     /// 
00060     FDOPOSTGIS_OV_API FdoPostGISOvClassCollection* GetClasses();
00061 
00062     /// \brief
00063     /// Gets the owner
00064     /// 
00065     /// \return
00066     /// Returns the database
00067     /// 
00068     FDOPOSTGIS_OV_API FdoString* GetOwner();
00069 
00070     /// \brief
00071     /// Sets the owner
00072     /// 
00073     /// \return
00074     /// Returns nothing
00075     /// 
00076     FDOPOSTGIS_OV_API void SetOwner(FdoString* owner);
00077 
00078     /// \brief
00079     /// Gets the provider name
00080     /// 
00081     /// \return
00082     /// Returns the provider name
00083     /// 
00084     FDOPOSTGIS_OV_API virtual FdoString* GetProvider(void);
00085 
00086 /// \cond DOXYGEN-IGNORE
00087 
00088     /// XML Serialization functions, not part of API.
00089 
00090     /// Serialize this property to XML.
00091     virtual void _writeXmlAttributes(FdoXmlWriter* xmlWriter,
00092         const FdoXmlFlags* flags);
00093 
00094     /// Initialize this element from its XML attributes
00095     virtual void InitFromXml(FdoXmlSaxContext* saxContext,
00096         FdoXmlAttributeCollection* attrs);
00097 
00098 /// \endcond
00099 
00100 protected:
00101 
00102     FdoPostGISOvPhysicalSchemaMapping();
00103     FdoPostGISOvPhysicalSchemaMapping(FdoString* name);
00104     virtual ~FdoPostGISOvPhysicalSchemaMapping();
00105     virtual void Dispose();
00106 
00107     /// Create a class override from XML attributes
00108     virtual FdoRdbmsOvClassDefinition* CreateClass(
00109         FdoXmlSaxContext* saxContext,
00110         FdoXmlAttributeCollection* atts);
00111 
00112     /// Add the given class override to this schema override set
00113     virtual void AddClass(FdoRdbmsOvClassDefinition* classDef);
00114 
00115     /// common initializer for all constructors:
00116     void Init();
00117 
00118 private:
00119 
00120     FdoPostGISOvClassesP mClasses;
00121 
00122     FdoStringP mOwner;
00123 };
00124 
00125 /// \brief
00126 /// Declaration of smart-pointer type for FdoPostGISOvGeometricColumn.
00127 /// Provided for convenience.
00128 ///
00129 typedef FdoPtr<FdoPostGISOvPhysicalSchemaMapping> FdoPostGISOvSchemaMappingP;
00130 
00131 #endif // FDOPOSTGISOVPHYSICALSCHEMAMAPPING_H

Comments?