OSGeo FDO Provider for MySQL API Reference

OSGeo FDO Provider for MySQL API

API Reference OSGeo FDO Provider for MySQL

MySqlOvObjectPropertyDefinition.h

Go to the documentation of this file.
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?