OSGeo FDO Provider for MySQL API Reference

OSGeo FDO Provider for MySQL API

API Reference OSGeo FDO Provider for MySQL

PostGisOvObjectPropertyDefinition.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 FDOPOSTGISOVOBJECTPROPERTYDEFINITION_H
00018 #define FDOPOSTGISOVOBJECTPROPERTYDEFINITION_H
00019 
00020 #include <Fdo/Commands/Schema/PhysicalElementMapping.h>
00021 #include <Rdbms/Override/RdbmsOvObjectPropertyDefinition.h>
00022 #include <Rdbms/Override/PostGIS/PostGisOv.h>
00023 #include <Rdbms/Override/PostGIS/PostGisOvPropertyMappingDefinition.h>
00024 #include <Rdbms/Override/PostGIS/PostGisOvPropertyDefinition.h>
00025 #include <Rdbms/Override/PostGIS/PostGisOvPropertyMappingClass.h>
00026 #include <Rdbms/Override/PostGIS/PostGisOvPropertyMappingConcrete.h>
00027 #include <Rdbms/Override/PostGIS/PostGisOvPropertyMappingSingle.h>
00028 
00029 /// \brief
00030 /// Concrete class defining physical schema overrides for an object
00031 /// property definition.
00032 /// This class is used in PostGIS schema overrides.
00033 /// 
00034 class FdoPostGISOvObjectPropertyDefinition :
00035     public FdoRdbmsOvObjectPropertyDefinition,
00036     public FdoPostGISOvPropertyDefinition
00037 {
00038 public:
00039 
00040     /// \brief
00041     /// Constructs a default of an FdoPostGISOvObjectPropertyDefinition.
00042     /// 
00043     /// \return
00044     /// Returns FdoPostGISOvObjectPropertyDefinition
00045     /// 
00046     FDOPOSTGIS_OV_API static FdoPostGISOvObjectPropertyDefinition* Create();
00047 
00048     /// \brief
00049     /// Constructs an instance of an FdoPostGISOvObjectPropertyDefinition
00050     /// using the specified arguments.
00051     /// 
00052     /// \param name 
00053     /// Input name
00054     /// 
00055     /// \return
00056     /// Returns FdoPostGISOvObjectPropertyDefinition
00057     /// 
00058     FDOPOSTGIS_OV_API static FdoPostGISOvObjectPropertyDefinition* Create(
00059         FdoString* name);
00060 
00061     /// \brief
00062     /// Gets the mapping definition
00063     /// 
00064     /// \return
00065     /// Returns the mapping definition
00066     /// 
00067     FDOPOSTGIS_OV_API FdoPostGISOvPropertyMappingDefinition* GetMappingDefinition();
00068 
00069     /// \brief
00070     /// Sets the mapping definition
00071     /// 
00072     /// \return
00073     /// Returns nothing
00074     /// 
00075     FDOPOSTGIS_OV_API void SetMappingDefinition(
00076         FdoPostGISOvPropertyMappingDefinition* mappingDef);
00077 
00078 protected:
00079 
00080     FdoPostGISOvObjectPropertyDefinition();
00081     
00082     FdoPostGISOvObjectPropertyDefinition(FdoString* name);
00083     
00084     virtual ~FdoPostGISOvObjectPropertyDefinition();
00085     
00086     virtual void Dispose();
00087 
00088     /// Create and optionally attach a Single table property mapping.
00089     virtual FdoRdbmsOvPropertyMappingSingle* CreateSingleMapping(bool attach);
00090 
00091     /// Create and optionally attach a Class table property mapping.
00092     virtual FdoRdbmsOvPropertyMappingClass* CreateClassMapping(bool attach);
00093 
00094     /// Create and optionally attach a Concrete table property mapping.
00095     virtual FdoRdbmsOvPropertyMappingConcrete* CreateConcreteMapping(bool attach);
00096 
00097 private:
00098 
00099 };
00100 
00101 
00102 /// \brief
00103 /// Declaration of smart-pointer type for FdoPostGISOvColumn.
00104 /// Provided for convenience.
00105 ///
00106 typedef FdoPtr<FdoPostGISOvObjectPropertyDefinition> FdoPostGISOvObjectPropertyP;
00107 
00108 #endif // FDOPOSTGISOVOBJECTPROPERTYDEFINITION_H

Comments?