00001 #ifndef FDO_ODBCOVPHYSICALSCHEMAMAPPING_H
00002 #define FDO_ODBCOVPHYSICALSCHEMAMAPPING_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 <Rdbms/Override/RdbmsOvPhysicalSchemaMapping.h>
00021 #include <Rdbms/Override/ODBC/OdbcOv.h>
00022 #include <Rdbms/Override/ODBC/OdbcOvClassCollection.h>
00023
00024 /// \brief
00025 /// Concrete class offering schema overrides for
00026 /// the Odbc Provider.
00027 class FdoOdbcOvPhysicalSchemaMapping : public FdoRdbmsOvPhysicalSchemaMapping
00028 {
00029
00030 public:
00031
00032 /// \brief
00033 /// Constructs a default of an FdoOdbcOvPhysicalSchemaMapping
00034 ///
00035 /// \return
00036 /// Returns FdoOdbcOvPhysicalSchemaMapping
00037 ///
00038 FDOODBC_OV_API static FdoOdbcOvPhysicalSchemaMapping* Create();
00039
00040 /// \brief
00041 /// Constructs an instance of an FdoOdbcOvPhysicalSchemaMapping using the specified arguments
00042 ///
00043 /// \param name
00044 /// Input name
00045 ///
00046 /// \return
00047 /// Returns FdoOdbcOvPhysicalSchemaMapping
00048 ///
00049 FDOODBC_OV_API static FdoOdbcOvPhysicalSchemaMapping* Create(FdoString* name);
00050
00051 /// \brief
00052 /// Gets the classes
00053 ///
00054 /// \return
00055 /// Returns the classes
00056 ///
00057 FDOODBC_OV_API FdoOdbcOvClassCollection* GetClasses();
00058
00059 /// \brief
00060 /// Gets the provider name
00061 ///
00062 /// \return
00063 /// Returns the provider name
00064 ///
00065 FDOODBC_OV_API virtual FdoString *GetProvider(void);
00066
00067 /// \cond DOXYGEN-IGNORE
00068
00069 /// XML Serialization functions, not part of API.
00070
00071 /// Serialize this property to XML.
00072 virtual void _writeXmlAttributes(FdoXmlWriter* xmlWriter, const FdoXmlFlags* flags);
00073
00074 /// Initialize this element from its XML attributes
00075 virtual void InitFromXml(FdoXmlSaxContext* pContext, FdoXmlAttributeCollection* attrs);
00076
00077 /// \endcond
00078
00079 protected:
00080 FdoOdbcOvPhysicalSchemaMapping();
00081 FdoOdbcOvPhysicalSchemaMapping(FdoString* name);
00082 virtual ~FdoOdbcOvPhysicalSchemaMapping();
00083 virtual void Dispose();
00084
00085 /// Create a class override from XML attributes
00086 virtual FdoRdbmsOvClassDefinition* CreateClass(
00087 FdoXmlSaxContext* context,
00088 FdoXmlAttributeCollection* atts
00089 );
00090
00091 /// Add the given class override to this schema override set
00092 virtual void AddClass(
00093 FdoRdbmsOvClassDefinition* pClass
00094 );
00095
00096 /// Common initializer for all constructors:
00097 void Init();
00098
00099 private:
00100 FdoOdbcOvClassesP mClasses;
00101 };
00102
00103 /// \brief
00104 /// FdoOdbcOvSchemaMappingP is a FdoPtr on FdoOdbcOvPhysicalSchemaMapping, provided for convenience.
00105 typedef FdoPtr<FdoOdbcOvPhysicalSchemaMapping> FdoOdbcOvSchemaMappingP;
00106
00107 #endif
00108
00109