FDO API Reference Feature Data Objects

NetworkLinkFeatureClass.h

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

Comments or suggestions? Send us feedback.