FDO .NET API Reference | Feature Data Objects |
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. |