- Main Page
- Related Pages
- Modules
- Classes
- Files

# TopoGeometryPropertyDefinition.h

Go to the documentation of this file.

    00001 #ifndef _FDOTOPOGEOMETRYPROPERTYDEFINITION_H_
    00002 #define _FDOTOPOGEOMETRYPROPERTYDEFINITION_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 #ifdef _WIN32
    00022 #pragma once
    00023 #endif
    00024
    00025 #include <FdoStd.h>
    00026 #include <Fdo/Schema/GeometricPropertyDefinition.h>
    00027
    00028 /// \brief
    00029 /// FdoTopoGeometryPropertyDefinition derives from
    00030 /// FdoGeometricPropertyDefinition, but it has behavior of both geometry and
    00031 /// fixed association. It can be used to relate an application-domain feature
    00032 /// class (other than a topological primitive class) to a topology. One can use
    00033 /// the short form TopoGeometry to refer to these properties.  Values of this
    00034 /// property can be used:
    00035 /// <ul>
    00036 /// <li> as spatial geometries; use FdoIFeatureReader::GetGeometry().
    00037 /// <li> to gain access to relationships to underlying features, including
    00038 /// topology primitives, similar to Association Properties; e.g. use
    00039 /// FdoIFeatureReader::GetObject() to retrieve, and associated feature
    00040 /// identifiers to insert/update.
    00041 /// </ul>
    00042 /// \note
    00043 /// This Help topic is provided for informational use only. There is
    00044 /// no interface or support provided. Autodesk reserves the right to change
    00045 /// the software related to the content herein.
    00046 class FdoTopoGeometryPropertyDefinition : public FdoGeometricPropertyDefinition
    00047 {
    00048 public:
    00049     FdoTopoGeometryPropertyDefinition(
    00050         FdoString * name,
    00051         FdoString * description,
    00052         FdoString * topologyName,
    00053         bool        system = false
    00054     );
    00055
    00056     /// Get the name of the topology to which this property belongs.
    00057     FdoString * GetTopologyName();
    00058
    00059     /// Set the name of the topology to which this property belongs. The
    00060     /// referenced topology must exist.
    00061     void SetTopologyName(
    00062         FdoString * topologyName
    00063     );
    00064
    00065     /// Gets the topo geometry property definition on which the current topo
    00066     /// geometry property depends. If the current property is not in a topology
    00067     /// hierarchy, then null is returned.
    00068     FdoTopoGeometryPropertyDefinition * GetDependsOnTopoGeometry();
    00069
    00070     /// Set the top geometry property on which the current topo geometry
    00071     /// property depends. This is set only if the current topo geometry property
    00072     /// is in a topology hierarchy. Set it to null (the default) to indicate
    00073     /// that the current property is not in a topology hierarchy.
    00074     void SetDependsOnTopoGeometry(
    00075         FdoTopoGeometryPropertyDefinition * dependsOnTopoGeometry
    00076     );
    00077
    00078 /// \cond DOXYGEN-IGNORE
    00079
    00080     /// Public non-API functions for XML support
    00081
    00082     /// Initialize the class from its XML attributes
    00083     virtual void InitFromXml(FdoString* classTypeName, FdoSchemaXmlContext* pContext, FdoXmlAttributeCollection* attrs);
    00084     virtual void InitFromXml(FdoSchemaXmlContext* pContext, FdoXmlAttributeCollection* attrs);
    00085
    00086     /// Handle sub-elements such as properties
    00087     /// Element start
    00088     virtual FdoXmlSaxHandler* XmlStartElement(
    00089         FdoXmlSaxContext* context,
    00090         FdoString* uri,
    00091         FdoString* name,
    00092         FdoString* qname,
    00093         FdoXmlAttributeCollection* atts
    00094     );
    00095     /// Element end
    00096     virtual FdoBoolean XmlEndElement(
    00097         FdoXmlSaxContext* context,
    00098         FdoString* uri,
    00099         FdoString* name,
    00100         FdoString* qname
    00101     );
    00102
    00103     /// Serialize this class to XML.
    00104     virtual void _writeXml( FdoSchemaXmlContext* pContext );
    00105
    00106 protected:
    00107     /// The name of the related topology.
    00108     FdoString * topologyName;
    00109
    00110     FdoTopoGeometryPropertyDefinition * dependsOnTopoGeometry;
    00111
    00112     /// \brief
    00113     /// Dispose this object.
    00114     ///
    00115     /// \return
    00116     /// Returns nothing
    00117     ///
    00118     virtual void Dispose ();
    00119
    00120     /// Hide default constructor to ensure that it cannot be used.
    00121     FdoTopoGeometryPropertyDefinition() {};
    00122     virtual ~FdoTopoGeometryPropertyDefinition();
    00123
    00124     /// FdoFeatureSchema::RejectChanges() support
    00125     virtual void    _StartChanges();
    00126     virtual void    _BeginChangeProcessing();
    00127     virtual void    _AcceptChanges();
    00128     virtual void    _RejectChanges();
    00129     virtual void    _EndChangeProcessing();
    00130 /// \endcond
    00131 };
    00132
    00133
    00134
    00135 #endif /* _FDOTOPOGEOMETRYPROPERTYDEFINITION_H_ */
    00136
    00137

Please send us your comment about this page