00001 #ifndef FDO_RDBMSOVTABLE_H 00002 #define FDO_RDBMSOVTABLE_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 <FdoCommon.h> 00024 #include <Fdo/Commands/Schema/PhysicalElementMapping.h> 00025 #include <Rdbms/Override/RdbmsOv.h> 00026 00027 ///<summary>Abstract class defining physical schema overrides for a table.</summary> 00028 class FdoRdbmsOvTable : public FdoPhysicalElementMapping 00029 { 00030 public: 00031 ///<summary>Gets the primary key nane</summary> 00032 ///<returns>Returns the primary key name</returns> 00033 FDORDBMS_OV_API FdoString *GetPKeyName(); 00034 00035 ///<summary>Sets the primary key name</summary> 00036 /// <param name="pKeyName">Input the primary key name</param> 00037 ///<returns>Returns nothing</returns> 00038 FDORDBMS_OV_API void SetPKeyName(FdoString *pKeyName); 00039 00040 /// \cond DOXYGEN-IGNORE 00041 // Makes SetParent function public. 00042 FDORDBMS_OV_API void SetParent(FdoPhysicalElementMapping* value); 00043 00044 // Serialize this property to XML. 00045 FDORDBMS_OV_API virtual void _writeXml(FdoXmlWriter* xmlWriter, const FdoXmlFlags* flags); 00046 /// \endcond 00047 00048 protected: 00049 FDORDBMS_OV_API FdoRdbmsOvTable(); 00050 FDORDBMS_OV_API FdoRdbmsOvTable(FdoString* name); 00051 FDORDBMS_OV_API virtual ~FdoRdbmsOvTable(); 00052 00053 // Initialize this element from its XML attributes 00054 FDORDBMS_OV_API virtual void InitFromXml(FdoXmlSaxContext* pContext, FdoXmlAttributeCollection* attrs); 00055 00056 FDORDBMS_OV_API virtual FdoXmlSaxHandler* XmlStartElement( 00057 FdoXmlSaxContext* context, 00058 FdoString* uri, 00059 FdoString* name, 00060 FdoString* qname, 00061 FdoXmlAttributeCollection* atts 00062 ); 00063 00064 // Write provider-specific parts to XML. 00065 FDORDBMS_OV_API virtual void _writeXmlContents(FdoXmlWriter* xmlWriter, const FdoXmlFlags* flags); 00066 00067 private: 00068 FdoStringP mPKeyName; 00069 00070 }; 00071 00072 ///<summary>FdoRdbmsOvTableP is a FdoPtr on FdoRdbmsOvTable, provided for convenience.</summary> 00073 typedef FdoPtr<FdoRdbmsOvTable> FdoRdbmsOvTableP; 00074 00075 #endif 00076