API Reference | OSGeo FDO Provider for MySQL |
00001 #ifndef FDO_MySQLOVOBJECTPROPERTYDEFINITION_H 00002 #define FDO_MySQLOVOBJECTPROPERTYDEFINITION_H 00003 // 00004 // 00005 // Copyright (C) 2004-2006 Autodesk, Inc. 00006 // 00007 // This library is free software; you can redistribute it and/or 00008 // modify it under the terms of version 2.1 of the GNU Lesser 00009 // General Public License as published by the Free Software Foundation. 00010 // 00011 // This library is distributed in the hope that it will be useful, 00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 // Lesser General Public License for more details. 00015 // 00016 // You should have received a copy of the GNU Lesser General Public 00017 // License along with this library; if not, write to the Free Software 00018 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00019 // 00020 #include <Fdo/Commands/Schema/PhysicalElementMapping.h> 00021 #include <Rdbms/Override/RdbmsOvObjectPropertyDefinition.h> 00022 #include <Rdbms/Override/MySQL/MySqlOv.h> 00023 #include <Rdbms/Override/MySQL/MySqlOvPropertyMappingDefinition.h> 00024 #include <Rdbms/Override/MySQL/MySqlOvPropertyDefinition.h> 00025 #include <Rdbms/Override/MySQL/MySqlOvPropertyMappingClass.h> 00026 #include <Rdbms/Override/MySQL/MySqlOvPropertyMappingConcrete.h> 00027 #include <Rdbms/Override/MySQL/MySqlOvPropertyMappingSingle.h> 00028 00029 /// \brief 00030 /// Concrete class defining physical schema overrides for an object property definition. 00031 class FdoMySQLOvObjectPropertyDefinition : public FdoRdbmsOvObjectPropertyDefinition, public FdoMySQLOvPropertyDefinition 00032 { 00033 public: 00034 /// \brief 00035 /// Constructs a default of an FdoMySQLOvObjectPropertyDefinition 00036 /// 00037 /// \return 00038 /// Returns FdoMySQLOvObjectPropertyDefinition 00039 /// 00040 FDOMYSQL_OV_API static FdoMySQLOvObjectPropertyDefinition* Create(); 00041 00042 /// \brief 00043 /// Constructs an instance of an FdoMySQLOvObjectPropertyDefinition using the specified arguments 00044 /// 00045 /// \param name 00046 /// Input name 00047 /// 00048 /// \return 00049 /// Returns FdoMySQLOvObjectPropertyDefinition 00050 /// 00051 FDOMYSQL_OV_API static FdoMySQLOvObjectPropertyDefinition* Create(FdoString* name); 00052 00053 /// \brief 00054 /// Gets the mapping definition 00055 /// 00056 /// \return 00057 /// Returns the mapping definition 00058 /// 00059 FDOMYSQL_OV_API FdoMySQLOvPropertyMappingDefinition* GetMappingDefinition(); 00060 00061 /// \brief 00062 /// Sets the mapping definition 00063 /// 00064 /// \return 00065 /// Returns nothing 00066 /// 00067 FDOMYSQL_OV_API void SetMappingDefinition(FdoMySQLOvPropertyMappingDefinition* propertyMappingDefinition); 00068 00069 protected: 00070 FdoMySQLOvObjectPropertyDefinition(); 00071 FdoMySQLOvObjectPropertyDefinition(FdoString* name); 00072 virtual ~FdoMySQLOvObjectPropertyDefinition(); 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 /// FdoMySQLOvObjectPropertyP is a FdoPtr on FdoMySQLOvObjectPropertyDefinition, provided for convenience. 00096 typedef FdoPtr<FdoMySQLOvObjectPropertyDefinition> FdoMySQLOvObjectPropertyP; 00097 00098 #endif 00099 00100
Comments? |