API Reference | OSGeo FDO Provider for ODBC |
00001 #ifndef FDO_SqlServerOVOBJECTPROPERTYDEFINITION_H 00002 #define FDO_SqlServerOVOBJECTPROPERTYDEFINITION_H 00003 /* 00004 * Copyright (C) 2004-2008 Autodesk, Inc. 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of version 2.1 of the GNU Lesser 00008 * General Public License as published by the Free Software Foundation. 00009 * 00010 * This library is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 * Lesser General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU Lesser General Public 00016 * License along with this library; if not, write to the Free Software 00017 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00018 * 00019 */ 00020 #include <Fdo/Commands/Schema/PhysicalElementMapping.h> 00021 #include <Rdbms/Override/RdbmsOvObjectPropertyDefinition.h> 00022 #include <Rdbms/Override/SQLServerSpatial/SqlServerOv.h> 00023 #include <Rdbms/Override/SQLServerSpatial/SqlServerOvPropertyMappingDefinition.h> 00024 #include <Rdbms/Override/SQLServerSpatial/SqlServerOvPropertyDefinition.h> 00025 #include <Rdbms/Override/SQLServerSpatial/SqlServerOvPropertyMappingClass.h> 00026 #include <Rdbms/Override/SQLServerSpatial/SqlServerOvPropertyMappingConcrete.h> 00027 #include <Rdbms/Override/SQLServerSpatial/SqlServerOvPropertyMappingSingle.h> 00028 00029 /// \brief 00030 /// Concrete class defining physical schema overrides for an object property definition. 00031 class FdoSqlServerOvObjectPropertyDefinition : public FdoRdbmsOvObjectPropertyDefinition, public FdoSqlServerOvPropertyDefinition 00032 { 00033 public: 00034 /// \brief 00035 /// Constructs a default of an FdoSqlServerOvObjectPropertyDefinition 00036 /// 00037 /// \return 00038 /// Returns FdoSqlServerOvObjectPropertyDefinition 00039 /// 00040 FDOSQLSERVER_OV_API static FdoSqlServerOvObjectPropertyDefinition* Create(); 00041 00042 /// \brief 00043 /// Constructs an instance of an FdoSqlServerOvObjectPropertyDefinition using the specified arguments 00044 /// 00045 /// \param name 00046 /// Input name 00047 /// 00048 /// \return 00049 /// Returns FdoSqlServerOvObjectPropertyDefinition 00050 /// 00051 FDOSQLSERVER_OV_API static FdoSqlServerOvObjectPropertyDefinition* Create(FdoString* name); 00052 00053 /// \brief 00054 /// Gets the mapping definition 00055 /// 00056 /// \return 00057 /// Returns the mapping definition 00058 /// 00059 FDOSQLSERVER_OV_API FdoSqlServerOvPropertyMappingDefinition* GetMappingDefinition(); 00060 00061 /// \brief 00062 /// Sets the mapping definition 00063 /// 00064 /// \return 00065 /// Returns nothing 00066 /// 00067 FDOSQLSERVER_OV_API void SetMappingDefinition(FdoSqlServerOvPropertyMappingDefinition* propertyMappingDefinition); 00068 00069 protected: 00070 FdoSqlServerOvObjectPropertyDefinition(); 00071 FdoSqlServerOvObjectPropertyDefinition(FdoString* name); 00072 virtual ~FdoSqlServerOvObjectPropertyDefinition(); 00073 virtual void Dispose(); 00074 00075 /// Create and optionally attach a Single table property mapping. 00076 virtual FdoRdbmsOvPropertyMappingSingle* CreateSingleMapping( 00077 bool attach 00078 ); 00079 00080 /// Create and optionally attach a Class table property mapping. 00081 virtual FdoRdbmsOvPropertyMappingClass* CreateClassMapping( 00082 bool attach 00083 ); 00084 00085 /// Create and optionally attach a Concrete table property mapping. 00086 virtual FdoRdbmsOvPropertyMappingConcrete* CreateConcreteMapping( 00087 bool attach 00088 ); 00089 00090 private: 00091 }; 00092 00093 00094 /// \brief 00095 /// FdoSqlServerOvObjectPropertyP is a FdoPtr on FdoSqlServerOvObjectPropertyDefinition, provided for convenience. 00096 typedef FdoPtr<FdoSqlServerOvObjectPropertyDefinition> FdoSqlServerOvObjectPropertyP; 00097 00098 #endif 00099 00100
Comments? |