00001 /*
00002 * (C) Copyright 2004 by Autodesk, Inc. All Rights Reserved.
00003 *
00004 * By using this code, you are agreeing to the terms and conditions of
00005 * the License Agreement included in the documentation for this code.
00006 *
00007 * AUTODESK MAKES NO WARRANTIES, EXPRESS OR IMPLIED, AS TO THE
00008 * CORRECTNESS OF THIS CODE OR ANY DERIVATIVE WORKS WHICH INCORPORATE
00009 * IT. AUTODESK PROVIDES THE CODE ON AN "AS-IS" BASIS AND EXPLICITLY
00010 * DISCLAIMS ANY LIABILITY, INCLUDING CONSEQUENTIAL AND INCIDENTAL
00011 * DAMAGES FOR ERRORS, OMISSIONS, AND OTHER PROBLEMS IN THE CODE.
00012 *
00013 * Use, duplication, or disclosure by the U.S. Government is subject
00014 * to restrictions set forth in FAR 52.227-19 (Commercial Computer
00015 * Software Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
00016 * (Rights in Technical Data and Computer Software), as applicable.
00017 *
00018 */
00019 #ifndef FDORFPPHYSICALSCHEMAMAPPING_H
00020 #define FDORFPPHYSICALSCHEMAMAPPING_H
00021
00022 #ifdef _WIN32
00023 #pragma once
00024 #endif //_WIN32
00025
00026 class FdoRfpClassCollection;
00027
00028 /// \brief
00029 ///
00030 /// The instance of class FdoRfpPhysicalSchemaMapping is the root object of
00031 /// all instances of overrides classes. It holds a list of Class Definitions.
00032 class FdoRfpPhysicalSchemaMapping : public FdoPhysicalSchemaMapping
00033 {
00034 typedef FdoPhysicalSchemaMapping BaseType;
00035
00036 public:
00037 /// \brief
00038 /// Constructs a new physical schema mapping.
00039 ///
00040 /// \return
00041 /// Returns the newly created FdoRfpPhysicalSchemaMapping instance.
00042 ///
00043 FDORFP_API static FdoRfpPhysicalSchemaMapping* Create();
00044
00045 /// \brief
00046 /// Gets the name of the applicable FDO provider.
00047 ///
00048 /// \return
00049 /// Returns the name of FDO provider to which this Schema Override set
00050 /// applies. The provider name conforms to the format:
00051 /// "{Company}.{Provider}.{Version}".
00052 ///
00053 FDORFP_API virtual FdoString* GetProvider();
00054
00055 /// \brief
00056 /// Gets the collection of Class Definition.
00057 ///
00058 /// \return
00059 /// Returns the collection of Class Definition.
00060 ///
00061 FDORFP_API FdoRfpClassCollection* GetClasses();
00062
00063 /// \cond DOXYGEN-IGNORE
00064
00065 /// XML Serialization functions, not part of supported API.
00066 FDORFP_API virtual void InitFromXml(FdoXmlSaxContext* pContext, FdoXmlAttributeCollection* attrs);
00067 FDORFP_API virtual FdoXmlSaxHandler* XmlStartElement(
00068 FdoXmlSaxContext* context,
00069 FdoString* uri,
00070 FdoString* name,
00071 FdoString* qname,
00072 FdoXmlAttributeCollection* atts
00073 );
00074 FDORFP_API virtual FdoBoolean XmlEndElement(FdoXmlSaxContext* context, FdoString* uri, FdoString* name, FdoString* qname);
00075
00076 protected:
00077 FDORFP_API FdoRfpPhysicalSchemaMapping(void);
00078 FDORFP_API virtual ~FdoRfpPhysicalSchemaMapping(void);
00079 FDORFP_API virtual void _writeXml( FdoXmlWriter* xmlWriter, const FdoXmlFlags* flags );
00080 void Dispose(void);
00081
00082 private:
00083 FdoPtr<FdoRfpClassCollection> m_ClassMappings;
00084
00085 /// \endcond
00086
00087 };
00088
00089 /// \brief
00090 /// FdoRfpPhysicalSchemaMappingP is a FdoPtr on FdoRfpPhysicalSchemaMapping, provided for convenience.
00091 typedef FdoPtr<FdoRfpPhysicalSchemaMapping> FdoRfpPhysicalSchemaMappingP;
00092
00093 #endif
00094
00095