FDO .NET API Reference Feature Data Objects

mgClassDefinition.h

Go to the documentation of this file.
00001 /*
00002 * Copyright (C) 2004-2006  Autodesk, Inc.
00003 * 
00004 * This library is free software; you can redistribute it and/or
00005 * modify it under the terms of version 2.1 of the GNU Lesser
00006 * General Public License as published by the Free Software Foundation.
00007 * 
00008 * This library is distributed in the hope that it will be useful,
00009 * but WITHOUT ANY WARRANTY; without even the implied warranty of
00010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011 * Lesser General Public License for more details.
00012 * 
00013 * You should have received a copy of the GNU Lesser General Public
00014 * License along with this library; if not, write to the Free Software
00015 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
00016 *
00017 */
00018 
00019 #pragma  once
00020 
00021 #include "FDO\Schema\mgSchemaElement.h"
00022 #include "FDO\Schema\mgClassType.h"
00023 #include "FDO\Schema\mgUniqueConstraintCollection.h"
00024 
00025 class FdoClassDefinition;
00026 
00027 BEGIN_NAMESPACE_OSGEO_FDO_SCHEMA
00028 public __gc class PropertyDefinitionCollection;
00029 public __gc class ReadOnlyPropertyDefinitionCollection;
00030 public __gc class DataPropertyDefinitionCollection;
00031 public __gc class ReadOnlyDataPropertyDefinitionCollection;
00032 public __gc class ClassCapabilities;
00033 
00034 /// \ingroup (OSGeoFDOSchema)
00035 /// \brief
00036 /// ClassDefinition is an abstract class that derives from SchemaElement.
00037 /// ClassDefinition is a base class for all concrete class types (e.g., FdoClass,
00038 /// FeatureClass) in the Schema package.
00039 public __gc class ClassDefinition : public NAMESPACE_OSGEO_FDO_SCHEMA::SchemaElement
00040 {
00041 public:
00042     /// \brief
00043     /// This is an abstract operation that must be implemented by derived classes to return
00044     /// the concrete class type.
00045     /// 
00046     /// \return
00047     /// Returns the ClassType
00048     /// 
00049     __property NAMESPACE_OSGEO_FDO_SCHEMA::ClassType get_ClassType();
00050 
00051     /// \brief
00052     /// Gets the base ClassDefinition this class is derived from.
00053     /// 
00054     /// \return
00055     /// Returns the base ClassDefinition
00056     /// 
00057     __property NAMESPACE_OSGEO_FDO_SCHEMA::ClassDefinition* get_BaseClass();
00058 
00059     /// \brief
00060     /// Sets the base ClassDefinition this class is derived from.
00061     /// 
00062     /// \param value 
00063     /// Input ClassDefinition this class is derived from
00064     /// 
00065     /// \return
00066     /// Returns nothing
00067     /// 
00068     __property System::Void set_BaseClass(NAMESPACE_OSGEO_FDO_SCHEMA::ClassDefinition* value);
00069 
00070     /// \brief
00071     /// Gets the abstraction state of ClassDefinition. Classes marked as abstract
00072     /// cannot be created via FDO commands and cannot be used as properties of
00073     /// another class.
00074     /// 
00075     /// \return
00076     /// Returns true if the ClassDefinition is abstract
00077     /// 
00078     __property System::Boolean get_IsAbstract();
00079 
00080     /// \brief
00081     /// Sets the abstraction state of ClassDefinition. Classes marked as abstract
00082     /// cannot be created via FDO commands and cannot be used as properties of
00083     /// another class.
00084     /// 
00085     /// \param value 
00086     /// Input the abstraction state
00087     /// 
00088     /// \return
00089     /// Returns nothing
00090     /// 
00091     __property System::Void set_IsAbstract(System::Boolean value);
00092 
00093     /// \brief
00094     /// Sets the base properties of this class.  All elements of the 
00095     /// input collection must also be properties of the class.
00096     /// 
00097     /// \param value 
00098     /// Input collection of PropertyDefinition values
00099     /// 
00100     /// \return
00101     /// Returns nothing
00102     /// 
00103 
00104     /// TODO: Should be changed into property. But this will raise a problem
00105     /// because of the difference between the return type of getter and the parameter type of setter.
00106     System::Void SetBaseProperties(NAMESPACE_OSGEO_FDO_SCHEMA::PropertyDefinitionCollection* value);
00107 
00108     /// \brief
00109     /// Returns an ReadOnlyPropertyDefinitionCollection containing the properties
00110     /// defined by base classes or by the concrete class type, itself. This
00111     /// collection is only populated when ClassDefinition is returned by the
00112     /// DescribeSchema command.
00113     /// 
00114     /// \return
00115     /// Returns ReadOnlyPropertyDefinitionCollection
00116     /// 
00117     NAMESPACE_OSGEO_FDO_SCHEMA::ReadOnlyPropertyDefinitionCollection* GetBaseProperties();
00118 
00119     /// \brief
00120     /// Returns an DataPropertyDefinitionCollection containing references to the
00121     /// data properties that can be used to uniquely identify instances of the
00122     /// class. The contained properties must already be defined in either the
00123     /// properties or baseProperties collection. If GetBaseClass() returns non
00124     /// null then this collection must be empty.
00125     /// 
00126     /// \return
00127     /// Returns DataPropertyDefinitionCollection
00128     /// 
00129     __property  NAMESPACE_OSGEO_FDO_SCHEMA::DataPropertyDefinitionCollection* get_IdentityProperties();
00130 
00131     /// \brief
00132     /// Returns an ReadOnlyDataPropertyDefinitionCollection containing the identity
00133     /// properties for the base class.
00134     /// 
00135     /// \return
00136     /// Returns ReadOnlyDataPropertyDefinitionCollection
00137     /// 
00138     __property  NAMESPACE_OSGEO_FDO_SCHEMA::ReadOnlyDataPropertyDefinitionCollection* get_BaseIdentityProperties();
00139 
00140     /// \brief
00141     /// Returns an PropertyCollection containing DataProperties,
00142     /// ClassProperties, and GeometricProperties defined for this class.
00143     /// 
00144     /// \return
00145     /// Returns PropertyDefinitionCollection
00146     /// 
00147     __property  NAMESPACE_OSGEO_FDO_SCHEMA::PropertyDefinitionCollection* get_Properties();
00148 
00149     /// \brief
00150     /// Gets the fully qualified name of this class
00151     /// 
00152     /// \return
00153     /// Returns {schema_name}:{class_name}
00154     /// 
00155     __property  System::String* get_QualifiedName();
00156 
00157     /// \brief
00158     /// Gets the computed state of ClassDefinition. Computed classes cannot be made persistent or added to 
00159     /// FDO schema. The computed classes are used as a transient classes that can be returned by a feature or data reader. 
00160     /// They describe the result of a select expression, select function and select distinct.
00161     /// 
00162     /// \return
00163     /// Returns true if the ClassDefinition is a computed class
00164     /// 
00165     __property  System::Boolean get_IsComputed();
00166 
00167     /// \brief
00168     /// Sets the computed state of ClassDefinition. This is an internal method that 
00169     /// can only be called by providers. Application should not use this method.
00170     /// 
00171     /// \param value 
00172     /// Input the computed state
00173     /// 
00174     /// \return
00175     /// Returns nothing
00176     /// 
00177     __property  System::Void set_IsComputed(System::Boolean value);
00178 
00179     /// \brief
00180     /// Gets the class-specific capabilities for this class.
00181     /// 
00182     /// \return
00183     /// Returns the capabilities. The Class Capabilities are connection
00184     /// datastore dependent so they are only defined when this object was 
00185     /// created by a DescribeSchema command. The returned capabilities are the
00186     /// ones for this command's connection.
00187     /// Returns NULL if this object was not created by a DescribeSchema command.
00188     /// 
00189     __property  NAMESPACE_OSGEO_FDO_SCHEMA::ClassCapabilities* get_Capabilities();
00190     
00191     /// \brief
00192     /// Sets the class-specific capabilities for this class.
00193     /// This function must only be called by an FDO Provider. It would be 
00194     /// typically called by the DescribeSchema command implementation.
00195     /// 
00196     /// \param value 
00197     /// Input the class capabilities.
00198     /// 
00199     __property  System::Void set_Capabilities(NAMESPACE_OSGEO_FDO_SCHEMA::ClassCapabilities* value);
00200 
00201     /// \brief
00202     /// Gets a UniqueConstraintCollection containing all unique constraints applied to properties of this class.
00203     /// The contained properties must already be defined in either the
00204     /// properties or baseProperties collections.
00205     /// 
00206     /// \return
00207     /// A UniqueConstraintCollection containing all unique constraints defined for properties of this class.
00208     /// 
00209     __property  NAMESPACE_OSGEO_FDO_SCHEMA::UniqueConstraintCollection* get_UniqueConstraints();
00210 
00211     /// \brief
00212     /// Constructs a ClassDefinition object based on an unmanaged instance of the object
00213     /// 
00214     /// \param unmanaged 
00215     /// Input A Pointer to the unmanaged object.
00216     /// 
00217     /// \param autoDelete 
00218     /// Input Indicates if the constructed object should be automatically deleted 
00219     /// once it no longer referenced.
00220     /// 
00221     ClassDefinition(System::IntPtr unmanaged, System::Boolean autoDelete) : NAMESPACE_OSGEO_FDO_SCHEMA::SchemaElement(unmanaged, autoDelete)
00222     {
00223 
00224     }
00225 
00226 public private:
00227     inline FdoClassDefinition* GetImpObj();
00228 };
00229 
00230 END_NAMESPACE_OSGEO_FDO_SCHEMA
00231 
00232 

Comments or suggestions? Send us feedback.