• Main Page
  • Classes
  • Files

RdbmsOvPropertyMappingRelation.h

Go to the documentation of this file.
00001 #ifndef FDO_RDBMSOVPROPERTYMAPPINGRELATION_H
00002 #define FDO_RDBMSOVPROPERTYMAPPINGRELATION_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 
00024 #include <Rdbms/Override/RdbmsOv.h>
00025 #include <Rdbms/Override/RdbmsOvPropertyMappingDefinition.h>
00026 
00027 class FdoRdbmsOvClassDefinition;
00028 
00029 ///<summary>
00030 ///Abstract class defining the physical schema overrides for relation type 
00031 ///object property table mappings.
00032 ///</summary>
00033 class FdoRdbmsOvPropertyMappingRelation : public virtual FdoRdbmsOvPropertyMappingDefinition
00034 {
00035 
00036 public:
00037 
00038     ///<summary>Gets the internal class</summary>
00039     /// <returns>Returns the internal class</returns>
00040     FDORDBMS_OV_API FdoRdbmsOvClassDefinition* GetInternalClass();
00041 
00042 /// \cond DOXYGEN-IGNORE
00043 
00044     // Serialize this property to XML. Not part of the API.
00045     FDORDBMS_OV_API virtual void _writeXml(FdoXmlWriter* xmlWriter, const FdoXmlFlags* flags);
00046 
00047     // Creates and optionally attaches an internal class override object.
00048     FDORDBMS_OV_API virtual FdoRdbmsOvClassDefinition* CreateInternalClass(
00049         bool attach // if true then make the new class the internal class for 
00050                     // this property mapping. Replaces any previous internal class 
00051     )
00052     {
00053         // TODO: throw exception.
00054         return NULL;
00055     }
00056 /// \endcond
00057 
00058 protected:
00059     FDORDBMS_OV_API FdoRdbmsOvPropertyMappingRelation();
00060     FDORDBMS_OV_API virtual ~FdoRdbmsOvPropertyMappingRelation();
00061 
00062     ///<summary>Sets the internal class</summary>
00063     /// <returns>Returns nothing</returns>
00064     FDORDBMS_OV_API void SetInternalClass(FdoRdbmsOvClassDefinition* classDefinition);
00065 
00066     // Handle start of sub-elements when deserializing from XML.
00067     FDORDBMS_OV_API virtual FdoXmlSaxHandler* XmlStartElement(
00068         FdoXmlSaxContext* context,
00069         FdoString* uri,
00070         FdoString* name,
00071         FdoString* qname,
00072         FdoXmlAttributeCollection* atts
00073     );
00074 
00075     // Handle end of sub-elements when deserializing from XML.
00076     FDORDBMS_OV_API virtual FdoBoolean XmlEndElement(
00077         FdoXmlSaxContext* context,
00078         FdoString* uri,
00079         FdoString* name,
00080         FdoString* qname
00081     );
00082 
00083 
00084 private:
00085     FdoPtr<FdoRdbmsOvClassDefinition> mClassDefinition;
00086 };
00087 
00088 ///<summary>
00089 ///FdoRdbmsOvPropertyMappingRelationP is a FdoPtr on 
00090 ///FdoRdbmsOvPropertyMappingRelation, provided for convenience.
00091 ///</summary>
00092 typedef FdoPtr<FdoRdbmsOvPropertyMappingRelation> FdoRdbmsOvPropertyMappingRelationP;
00093 
00094 #endif
00095 
Please send us your comment about this page