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 FDOPOSTGISOVASSOCIATIONPROPERTYDEFINITION_H
00018 #define FDOPOSTGISOVASSOCIATIONPROPERTYDEFINITION_H
00019
00020 #include <FdoCommon.h>
00021 #include <Rdbms/Override/PostGIS/PostGisOv.h>
00022 #include <Rdbms/Override/PostGIS/PostGisOvPropertyDefinitionCollection.h>
00023 #include <Rdbms/Override/RdbmsOvAssociationPropertyDefinition.h>
00024
00025 /// \brief
00026 /// Concrete class defining physical schema overrides for association
00027 /// property definition.
00028 ///
00029 class FdoPostGISOvAssociationPropertyDefinition :
00030 public FdoPostGISOvPropertyDefinition,
00031 public FdoRdbmsOvAssociationPropertyDefinition
00032 {
00033 public:
00034
00035 /// \brief
00036 /// Named constructor.
00037 /// Creates instance with default state initialized.
00038 ///
00039 /// \return
00040 /// Pointer to new instance of FdoPostGISOvAssociationPropertyDefinition.
00041 ///
00042 FDOPOSTGIS_OV_API static FdoPostGISOvAssociationPropertyDefinition* Create();
00043
00044 /// \brief
00045 /// Named constructor.
00046 /// Creates new instance with given name.
00047 ///
00048 /// \param
00049 /// name [in] - name for new association.
00050 ///
00051 /// \return
00052 /// Pointer to new instance of FdoPostGISOvAssociationPropertyDefinition.
00053 ///
00054 FDOPOSTGIS_OV_API static FdoPostGISOvAssociationPropertyDefinition* Create(
00055 FdoString* name);
00056
00057 /// \brief
00058 /// Gets a collection of property definitions
00059 ///
00060 /// \return
00061 /// Pointer to collection of property definitions.
00062 ///
00063 FDOPOSTGIS_OV_API FdoPostGISOvPropertyDefinitionCollection *GetIdentityProperties();
00064
00065 protected:
00066
00067 /// Default constructor.
00068 FdoPostGISOvAssociationPropertyDefinition();
00069
00070 /// Alternative constructor.
00071 /// \param name [in] - name of association definition.
00072 FdoPostGISOvAssociationPropertyDefinition(FdoString* name);
00073
00074 /// Destructor.
00075 virtual ~FdoPostGISOvAssociationPropertyDefinition();
00076
00077 /// Named destructor.
00078 virtual void Dispose();
00079
00080 private:
00081
00082 /// Named constructor.
00083 /// Called from class constructors.
00084 void Init();
00085
00086 /// Collection of properties definition.
00087 FdoPostGISOvPropertiesP mPropertyDefinitions;
00088 };
00089
00090 #endif // FDOPOSTGISOVASSOCIATIONPROPERTYDEFINITION_H