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 FDOPOSTGISOVPROPERTYDEFINITIONCOLLECTION_H
00018 #define FDOPOSTGISOVPROPERTYDEFINITIONCOLLECTION_H
00019
00020 #include <Rdbms/Override/PostGIS/PostGisOv.h>
00021 #include <Rdbms/Override/PostGIS/PostGisOvPropertyDefinition.h>
00022 #include <Rdbms/Override/RdbmsOvPropertyDefinitionCollection.h>
00023 #include <Fdo/Commands/Schema/PhysicalElementMappingCollection.h>
00024
00025 /// \brief
00026 /// Local alias of base type for FdoPostGISOvPropertyDefinitionCollection.
00027 ///
00028 typedef FdoRestrictedNamedCollection
00029 <
00030 FdoRdbmsOvPropertyDefinition,
00031 FdoPostGISOvPropertyDefinition,
00032 FdoRdbmsOvPropertyDefinitionCollection
00033 >
00034 FdoPostGISOvPropertyDefinitionCollectionBase;
00035
00036 /// \brief
00037 /// Concrete class defining physical schema overrides for collection
00038 /// of property definitions.
00039 /// This class is used in PostGIS schema overrides.
00040 ///
00041 class FdoPostGISOvPropertyDefinitionCollection :
00042 public FdoPostGISOvPropertyDefinitionCollectionBase
00043 {
00044 public:
00045
00046 /// \brief
00047 /// Constructs a default of an FdoPostGISOvPropertyDefinitionCollection
00048 ///
00049 /// \return
00050 /// Returns FdoPostGISOvPropertyDefinitionCollection
00051 ///
00052 FDOPOSTGIS_OV_API static FdoPostGISOvPropertyDefinitionCollection* Create();
00053
00054 /// \brief
00055 /// Named constructor.
00056 /// Creates new instance based on given collection.
00057 ///
00058 /// \param
00059 /// base [in] - pointer to base collection.
00060 ///
00061 /// \return
00062 /// Pointer to new FdoPostGISOvPropertyDefinitionCollection instance.
00063 ///
00064
00065 FDOPOSTGIS_OV_API static FdoPostGISOvPropertyDefinitionCollection* Create(
00066 FdoRdbmsOvPropertyDefinitionCollection* base);
00067
00068 protected:
00069
00070 /// Default constructor.
00071 FdoPostGISOvPropertyDefinitionCollection();
00072
00073 /// Alternative constructor.
00074 /// base [in] - pointer to base collection.
00075 FdoPostGISOvPropertyDefinitionCollection(
00076 FdoRdbmsOvPropertyDefinitionCollection* base);
00077
00078 /// Destructor.
00079 virtual ~FdoPostGISOvPropertyDefinitionCollection();
00080
00081 /// Named destructor.
00082 /// Responsible for final destruction calling
00083 /// \code delete this \endcode.
00084 virtual void Dispose();
00085
00086 virtual FdoPostGISOvPropertyDefinition* DownCast(
00087 FdoRdbmsOvPropertyDefinition* value) const;
00088
00089 };
00090
00091 /// \brief
00092 /// Declaration of smart-pointer type for
00093 /// FdoPostGISOvPropertyDefinitionCollection.
00094 /// Provided for convenience.
00095 ///
00096 typedef FdoPtr<FdoPostGISOvPropertyDefinitionCollection>
00097 FdoPostGISOvPropertiesP;
00098
00099 #endif // FDOPOSTGISOVPROPERTYDEFINITIONCOLLECTION_H