• Main Page
  • Classes
  • Files

RdbmsOvObjectPropertyDefinition.h

Go to the documentation of this file.
00001 #ifndef FDO_RDBMSOVOBJECTPROPERTYDEFINITION_H
00002 #define FDO_RDBMSOVOBJECTPROPERTYDEFINITION_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 
00021 /// FdoRdbms.lib
00022 
00023 #include <Rdbms/Override/RdbmsOv.h>
00024 #include <Rdbms/Override/RdbmsOvPropertyDefinition.h>
00025 #include <Rdbms/Override/RdbmsOvPropertyMappingClass.h>
00026 #include <Rdbms/Override/RdbmsOvPropertyMappingConcrete.h>
00027 #include <Rdbms/Override/RdbmsOvPropertyMappingSingle.h>
00028 
00029 ///<summary>Abstract class defining physical schema overrides for an object property
00030 ///definition.</summary>
00031 class FdoRdbmsOvObjectPropertyDefinition : virtual public FdoRdbmsOvPropertyDefinition
00032 {
00033 public:
00034     ///<summary>Gets the object property mapping definition</summary>
00035     /// <returns>Returns FdoRdbmsOvPropertyMappingDefinition</returns>
00036     FDORDBMS_OV_API FdoRdbmsOvPropertyMappingDefinition* GetMappingDefinition();
00037 
00038 /// \cond DOXYGEN-IGNORE
00039 
00040     // XML Serialization functions, not part of API.
00041 
00042     // Initialize this element from its XML attributes
00043     FDORDBMS_OV_API virtual void InitFromXml(
00044         FdoXmlSaxContext* pContext, 
00045         FdoXmlAttributeCollection* attrs,
00046         FdoString* mappingType,
00047         FdoXmlAttributeCollection* mappingAttrs
00048     );
00049 
00050     // Create and optionally attach a Single table property mapping.
00051     FDORDBMS_OV_API virtual FdoRdbmsOvPropertyMappingSingle* CreateSingleMapping(
00052         bool attach // if true then make the new mapping the property mapping for 
00053                     // this object property. Replaces any previous mapping 
00054     )
00055     {
00056         return NULL;
00057         //TODO: exception
00058     }
00059 
00060     // Create and optionally attach a Class table property mapping.
00061     FDORDBMS_OV_API virtual FdoRdbmsOvPropertyMappingClass* CreateClassMapping(
00062         bool attach // if true then make the new mapping the property mapping for 
00063                     // this object property. Replaces any previous mapping 
00064     )
00065     {
00066         return NULL;
00067         //TODO: exception
00068     }
00069 
00070     // Create and optionally attach a Concrete table property mapping.
00071     FDORDBMS_OV_API virtual FdoRdbmsOvPropertyMappingConcrete* CreateConcreteMapping(
00072         bool attach // if true then make the new mapping the property mapping for 
00073                     // this object property. Replaces any previous mapping 
00074     )
00075     {
00076         return NULL;
00077         //TODO: exception
00078     }
00079 
00080 /// \endcond
00081 
00082 
00083 protected:
00084     FDORDBMS_OV_API FdoRdbmsOvObjectPropertyDefinition();
00085     FDORDBMS_OV_API FdoRdbmsOvObjectPropertyDefinition(FdoString* name);
00086     FDORDBMS_OV_API virtual ~FdoRdbmsOvObjectPropertyDefinition();
00087 
00088     // Sets the object property mapping
00089     FDORDBMS_OV_API void SetMappingDefinition(FdoRdbmsOvPropertyMappingDefinition* propertyMappingDefinition);
00090 
00091     // Serialize provider-specific parts of this override to XML.
00092     FDORDBMS_OV_API virtual void _writeXmlContents(FdoXmlWriter* xmlWriter, const FdoXmlFlags* flags);
00093 
00094 private:
00095     FdoRdbmsOvPropertyMappingP mPropertyMappingDefinition;
00096 };
00097 
00098 ///<summary>FdoRdbmsOvObjectPropertyP is a FdoPtr on FdoRdbmsOvObjectPropertyDefinition, provided for convenience.</summary>
00099 typedef FdoPtr<FdoRdbmsOvObjectPropertyDefinition> FdoRdbmsOvObjectPropertyP;
00100 
00101 #endif
00102 
Please send us your comment about this page