FDO API Reference Feature Data Objects

TopoFeaturePropertyDefinition.h

Go to the documentation of this file.
00001 
00002 //
00003 // Copyright (C) 2004-2006  Autodesk, Inc.
00004 // 
00005 // This library is free software; you can redistribute it and/or
00006 // modify it under the terms of version 2.1 of the GNU Lesser
00007 // General Public License as published by the Free Software Foundation.
00008 // 
00009 // This library is distributed in the hope that it will be useful,
00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012 // Lesser General Public License for more details.
00013 // 
00014 // You should have received a copy of the GNU Lesser General Public
00015 // License along with this library; if not, write to the Free Software
00016 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
00017 //
00018 
00019 #ifndef _FDOTOPOFEATUREPROPERTYDEFINITION_H_
00020 #define _FDOTOPOFEATUREPROPERTYDEFINITION_H_
00021 
00022 #ifdef _WIN32
00023 #pragma once
00024 #endif
00025 
00026 #include <FdoStd.h>
00027 #include <Fdo/Schema/PropertyDefinition.h>
00028 
00029 /// \brief
00030 /// FdoTopoFeaturePropertyDefinition derives from FdoPropertyDefinition and its
00031 /// values can be used to relate topological primitives to one or more
00032 /// application domain features. One can use the short form "TopoFeature" to
00033 /// refer to these properties. The semantics of this property are similar to
00034 /// Object properties. One uses FdoIFeatureReader::GetObject() to retrieve
00035 /// values.
00036 /// \note
00037 /// This Help topic is provided for informational use only. There is
00038 /// no interface or support provided. Autodesk reserves the right to change
00039 /// the software related to the content herein.
00040 /// \remarks
00041 /// FdoTopoFeaturePropertyDefinition and FdoTopoGeometryPropertyDefinition are
00042 /// the matching roles of many:many relationships between topological primitives
00043 /// and application domain features. FDO Association properties are not used for
00044 /// these roles because topological relationships are not between fixed classes.
00045 /// The relationships are populated only from the TopoGeometry role, so
00046 /// TopoFeature properties need never be subject to an insertion or update
00047 /// operation. 
00048 class FdoTopoFeaturePropertyDefinition : public FdoPropertyDefinition
00049 {
00050 public:
00051 
00052     /// \brief
00053     /// Constructs an instance of an FdoTopoFeaturePropertyDefinition using the
00054     /// specified arguments.
00055     /// 
00056     FDO_API static FdoTopoFeaturePropertyDefinition * Create(
00057         FdoString * name, 
00058         FdoString * description,
00059         bool        system = false
00060     );
00061 
00062 /// \cond DOXYGEN-IGNORE
00063     /// Public non-API functions for XML support
00064 
00065     /// Initialize the class from its XML attributes
00066     virtual void InitFromXml(const FdoString* classTypeName, FdoSchemaXmlContext* pContext, FdoXmlAttributeCollection* attrs);
00067     virtual void InitFromXml(FdoSchemaXmlContext* pContext, FdoXmlAttributeCollection* attrs);
00068 
00069     /// Handle sub-elements such as properties
00070     /// Element start
00071     virtual FdoXmlSaxHandler* XmlStartElement(
00072         FdoXmlSaxContext* context, 
00073         FdoString* uri, 
00074         FdoString* name, 
00075         FdoString* qname, 
00076         FdoXmlAttributeCollection* atts
00077     );
00078     /// Element end
00079     virtual FdoBoolean XmlEndElement(
00080         FdoXmlSaxContext* context, 
00081         FdoString* uri, 
00082         FdoString* name, 
00083         FdoString* qname
00084     );
00085 
00086     /// Serialize this class to XML.
00087     virtual void _writeXml( FdoSchemaXmlContext* pContext );
00088 
00089 protected:
00090     /// \brief
00091     /// Dispose this object.
00092     /// 
00093     /// \return
00094     /// Returns nothing
00095     /// 
00096     virtual void Dispose ();
00097  
00098     /// Hide default constructor to ensure that it cannot be used.
00099     FdoTopoFeaturePropertyDefinition() {};
00100     virtual ~FdoTopoFeaturePropertyDefinition() {};
00101 
00102     /// FdoFeatureSchema::RejectChanges() support
00103     virtual void    _StartChanges();
00104     virtual void    _BeginChangeProcessing();
00105     virtual void    _AcceptChanges();
00106     virtual void    _RejectChanges();
00107     virtual void    _EndChangeProcessing();
00108 /// \endcond
00109 };
00110 
00111 
00112 
00113 #endif /* _FDOTOPOFEATUREPROPERTYDEFINITION_H_ */
00114 
00115 

Comments or suggestions? Send us feedback.