FDO API Reference Feature Data Objects

NetworkNodeFeatureClass.h

Go to the documentation of this file.
00001 #ifndef _NETWORKNODEFEATURECLASS_H_
00002 #define _NETWORKNODEFEATURECLASS_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/NetworkFeatureClass.h>
00027 #include <Fdo/Schema/ClassType.h>
00028 
00029 /// \brief
00030 /// FdoNetworkNodeFeature derives from FdoNetworkFeature and can be used to represent a 
00031 /// logical node feature.
00032 /// \note
00033 /// This Help topic is provided for informational use only. There is
00034 /// no interface or support provided. Autodesk reserves the right to change
00035 /// the software related to the content herein.
00036 class FdoNetworkNodeFeatureClass : public FdoNetworkFeatureClass
00037 {
00038 
00039 protected:
00040 /// \cond DOXYGEN-IGNORE
00041     /// Constructs a default instance of an FdoNetworkNodeFeatureClass.
00042     FdoNetworkNodeFeatureClass();
00043 
00044     /// Constructs an instance of an FdoNetworkNodeFeatureClass using the specified arguments.
00045     FdoNetworkNodeFeatureClass(FdoString* name, FdoString* description);
00046 
00047     virtual ~FdoNetworkNodeFeatureClass();
00048 
00049     virtual void Dispose();
00050 /// \endcond
00051 
00052 public:
00053     /// \brief
00054     /// Constructs a default instance of an FdoNetworkNodeFeatureClass.
00055     /// 
00056     /// \return
00057     /// Returns FdoNetworkNodeFeatureClass
00058     /// 
00059     FDO_API static FdoNetworkNodeFeatureClass* Create();
00060 
00061     /// \brief
00062     /// Constructs an instance of an FdoNetworkNodeFeatureClass using the specified arguments.
00063     /// 
00064     /// \param name 
00065     /// Input name
00066     /// \param description 
00067     /// Input description
00068     /// 
00069     /// \return
00070     /// Returns FdoNetworkNodeFeatureClass
00071     /// 
00072     FDO_API static FdoNetworkNodeFeatureClass* Create(FdoString* name, FdoString* description);
00073 
00074     /// \brief
00075     /// Gets the concrete class type.
00076     /// 
00077     /// \return
00078     /// Returns class type
00079     /// 
00080     FDO_API virtual FdoClassType GetClassType();
00081 
00082     /// \brief
00083     /// Gets a reference to the layer property.
00084     /// 
00085     /// \return
00086     /// Returns an association property definition
00087     /// 
00088     FDO_API FdoAssociationPropertyDefinition* GetLayerProperty();
00089 
00090     /// \brief
00091     /// Sets a reference to the layer property. The associated class of the layer
00092     /// association property must be an FdoNetworkLayer.
00093     /// 
00094     /// \param value 
00095     /// Input an association property definition
00096     /// 
00097     /// \return
00098     /// Returns nothing
00099     /// 
00100     FDO_API void SetLayerProperty(FdoAssociationPropertyDefinition* value);
00101 
00102 /// \cond DOXYGEN-IGNORE
00103     /// Public non-API functions for XML support
00104 
00105     /// Update this property from the given property.
00106     virtual void Set( FdoClassDefinition* pClass, FdoSchemaXmlContext* pContext );
00107 
00108     /// Initialize this property from its XML attributes
00109     virtual void InitFromXml(const FdoString* classTypeName, FdoSchemaXmlContext* pContext, FdoXmlAttributeCollection* attrs);
00110 
00111     /// Handle sub-elements such as properties
00112     /// Element start
00113     virtual FdoXmlSaxHandler* XmlStartElement(
00114         FdoXmlSaxContext* context, 
00115         FdoString* uri, 
00116         FdoString* name, 
00117         FdoString* qname, 
00118         FdoXmlAttributeCollection* atts
00119     );
00120     /// Element end
00121     virtual FdoBoolean XmlEndElement(
00122         FdoXmlSaxContext* context, 
00123         FdoString* uri, 
00124         FdoString* name, 
00125         FdoString* qname
00126     );
00127 
00128 
00129     /// Serialize this property to XML.
00130     virtual void _writeXml( FdoSchemaXmlContext* pContext );
00131 
00132 
00133 private:
00134     FdoAssociationPropertyDefinition    *m_layer;
00135 
00136     FdoAssociationPropertyDefinition    *m_layerHandler;
00137     bool                                m_bStartLayer;
00138 protected:
00139     virtual void    _StartChanges();
00140     virtual void    _BeginChangeProcessing();
00141     virtual void    _AcceptChanges();
00142     virtual void    _RejectChanges();
00143     virtual void    _EndChangeProcessing();
00144     FdoAssociationPropertyDefinition    *m_layerCHANGED;
00145 /// \endcond
00146 };
00147 
00148 /// \brief
00149 /// FdoNetworkNodeFeatureClassP is a FdoPtr on FdoNetworkNodeFeatureClass, provided for convenience.
00150 typedef FdoPtr<FdoNetworkNodeFeatureClass> FdoNetworkNodeFeatureClassP;
00151 
00152 #endif
00153 
00154 

Comments or suggestions? Send us feedback.