FDO .NET API Reference Feature Data Objects

mgISchemaCapabilitiesImp.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\Connections\Capabilities\mgISchemaCapabilities.h"
00022 
00023 class FdoISchemaCapabilities;
00024 
00025 BEGIN_NAMESPACE_OSGEO_FDO_CONNECTIONS_CAPABILITIES
00026 
00027 /// \ingroup (OSGeoFDOConnectionsCapabilities)
00028 /// \brief
00029 /// The ISchemaCapbilities interface declares the feature provider's level 
00030 /// of support for the Feature Schema.
00031 private __gc class ISchemaCapabilitiesImp : public NAMESPACE_OSGEO_RUNTIME::Disposable, 
00032                                             public NAMESPACE_OSGEO_FDO_CONNECTIONS_CAPABILITIES::ISchemaCapabilities
00033 {
00034 public:
00035     /// \brief
00036     /// Returns an array of the ClassType objects the feature provider supports.
00037     /// 
00038     /// \return
00039     /// Returns the list of class types.
00040     /// 
00041     __property NAMESPACE_OSGEO_FDO_SCHEMA::ClassType get_ClassTypes() [];
00042 
00043     /// \brief
00044     /// Returns an array of the DataType objects the feature provider supports.
00045     /// 
00046     /// \return
00047     /// Returns the list of data types
00048     /// 
00049     __property NAMESPACE_OSGEO_FDO_SCHEMA::DataType get_DataTypes() [];
00050 
00051     /// \brief
00052     /// Returns the maximum supported length of String, BLOB, or CLOB data
00053     /// properties. For decimal, it is the combination of the maximum scale
00054     /// and precision. For other data types that are not variable in size,
00055     /// the value returned is the byte length.
00056     ///
00057     /// \param dataType
00058     /// The data type for which the information is to retrieved.
00059     ///
00060     /// \return
00061     /// Returns the maximum data value length for the identified data type.
00062     ///
00063     __property System::Int64 get_MaximumDataValueLength(NAMESPACE_OSGEO_FDO_SCHEMA::DataType dataType);
00064 
00065     /// \brief
00066     /// Returns the maximum supported precision for a decimal data property.
00067     ///
00068     /// \return
00069     /// Returns the maximum supported precision for a decimal data property.
00070     ///
00071     __property System::Int32 get_MaximumDecimalPrecision();
00072 
00073     /// \brief
00074     /// Returns the maximum supported scale for a decimal data property.
00075     ///
00076     /// \return
00077     /// Returns the maximum supported scale for a decimal data property.
00078     ///
00079     __property System::Int32 get_MaximumDecimalScale();
00080 
00081     /// \brief
00082     /// Returns the maximum size of a value of the given type. It includes
00083     /// limits for the data store name, shema name, class name, property name
00084     /// and description.
00085     ///
00086     /// \param name
00087     /// The schema element name type identifier for which the information is to
00088     /// be retrieved. Can be any of the following options: SchemaElementNameType_Datastore,
00089     /// SchemaElementNameType_Schema, SchemaElementNameType_Class, SchemaElementNameType_Property or 
00090     /// SchemaElementNameType_Description
00091     ///
00092     /// \return
00093     /// Returns the size limitation for the identified schema element.
00094     ///
00095     __property System::Int32 get_NameSizeLimit(NAMESPACE_OSGEO_FDO_CONNECTIONS_CAPABILITIES::SchemaElementNameType name);
00096 
00097     /// \brief
00098     /// Returns a string that includes all the reserved characters that cannot be
00099     /// used for the various schema element names for the provider.
00100     ///
00101     /// \return
00102     /// Returns a string with the reserved characters for the identified schema element.
00103     ///
00104     __property System::String* get_ReservedCharactersForName();
00105 
00106     /// \brief
00107     /// Returns an array of the DataType objects the feature provider supports for auto-generation.
00108     /// 
00109     /// \return
00110     /// Returns the list of data types
00111     /// 
00112     __property NAMESPACE_OSGEO_FDO_SCHEMA::DataType get_SupportedAutoGeneratedTypes() [];
00113 
00114     /// \brief
00115     /// Returns a list of property types that can be used for identity properties.
00116     ///
00117     /// \return
00118     /// Returns a string with the reserved characters for the identified schema element.
00119     ///
00120     __property NAMESPACE_OSGEO_FDO_SCHEMA::DataType get_SupportedIdentityPropertyTypes() [];
00121 
00122     /// \brief
00123     /// Determines if the provider supports association property.
00124     /// 
00125     /// \return
00126     /// Returns true if the provider support the association property.
00127     /// 
00128     __property System::Boolean get_SupportsAssociationProperties();
00129 
00130     /// \brief
00131     /// Determines if the provider can auto-generate unique ID values for a class.
00132     /// 
00133     /// \return
00134     /// Returns true if the provider supports id autogeneration.
00135     /// 
00136     __property System::Boolean get_SupportsAutoIdGeneration();
00137 
00138     /// \brief
00139     /// Determines if the provider supports multiple identity properties per class.
00140     /// 
00141     /// \return
00142     /// Returns true if the provider supports multiple identity properties per class.
00143     /// 
00144     __property System::Boolean get_SupportsCompositeId();
00145 
00146     /// \brief
00147     /// Determines if the provider supports composite unique value constraint.
00148     /// 
00149     /// \return
00150     /// Returns true if the provider supports composite unique value constraint.
00151     /// 
00152     __property System::Boolean get_SupportsCompositeUniqueValueConstraints();
00153 
00154     /// \brief
00155     /// Determines if the provider can auto-generate unique ID values that are unique for the entire datastore, rather than just for a particular class.
00156     /// 
00157     /// \return
00158     /// Returns true if the provider supports id autogeneration unique across an datastore.
00159     /// 
00160     __property System::Boolean get_SupportsDataStoreScopeUniqueIdGeneration();
00161 
00162     /// \brief
00163     /// Returns TRUE if default values can be specified for a data property
00164     /// definition, FALSE otherwise.
00165     ///
00166     /// \return
00167     /// Returns TRUE if default values can be specified for a data property
00168     /// definition, FALSE otherwise.
00169     ///
00170     __property System::Boolean get_SupportsDefaultValue();
00171 
00172     /// \brief
00173     /// Determines if the provider supports inclusive value range constraints.
00174     /// 
00175     /// \return
00176     /// Returns true if the provider supports inclusive value range constraints.
00177     /// 
00178     __property System::Boolean get_SupportsInclusiveValueRangeConstraints();
00179 
00180     /// \brief
00181     /// Determines if the provider supports exclusive value range constraints.
00182     /// 
00183     /// \return
00184     /// Returns true if the provider supports exclusive value range constraints.
00185     /// 
00186     __property System::Boolean get_SupportsExclusiveValueRangeConstraints();
00187 
00188     /// \brief
00189     /// Determines if the feature provider supports inheritance.
00190     /// 
00191     /// \return
00192     /// Returns true if the feature provider supports inheritance
00193     /// 
00194     __property System::Boolean get_SupportsInheritance();
00195 
00196     /// \brief
00197     /// Determines if the provider supports multiple schemas. Returns false if the provider supports only a single schema.
00198     /// 
00199     /// \return
00200     /// Returns true if the provider supports multiple schemas.
00201     /// 
00202     __property System::Boolean get_SupportsMultipleSchemas();
00203 
00204     /// \brief
00205     /// Determines if the provider supports the network model.
00206     /// 
00207     /// \return
00208     /// Returns true if the provider supports the network model.
00209     /// 
00210     __property System::Boolean get_SupportsNetworkModel();
00211 
00212     /// \brief
00213     /// Determines if the provider supports nullable value constraint.
00214     /// 
00215     /// \return
00216     /// Returns true if the provider supports nullable value constraint.
00217     /// 
00218     __property System::Boolean get_SupportsNullValueConstraints();
00219 
00220     /// \brief
00221     /// Determines if the provider supports object properties. Returns false if the provider supports only data and geometric properties.
00222     /// 
00223     /// \return
00224     /// Returns true if the provider supports object properties.
00225     /// 
00226     __property System::Boolean get_SupportsObjectProperties();
00227 
00228     /// \brief
00229     /// Determines if the provider support update a schema through the ApplySchema command.
00230     /// If False, then an application can only create a schema once for the provider. They can use the ApplySchema 
00231     /// command once for a given datastore. Once the schema is defined, it cannot be changed. If True, then the provider 
00232     /// supports the ability to modify or add to the schema after it is defined initially.
00233     /// 
00234     /// \return
00235     /// Returns true if the provider supports the update of the schema.
00236     /// 
00237     __property System::Boolean get_SupportsSchemaModification();
00238 
00239     /// \brief
00240     /// Determines if the provider supports Schema Mapping Overrides 
00241     /// (overrides to the default rules for mapping Feature Schemas to provider-specific
00242     /// physical schemas)
00243     /// 
00244     /// \return
00245     /// Returns true if the provider supports Schema Overrides
00246     /// 
00247     __property System::Boolean get_SupportsSchemaOverrides();
00248 
00249     /// \brief
00250     /// Determines if the provider supports unique value constraint.
00251     /// 
00252     /// \return
00253     /// Returns true if the provider supports unique value constraint.
00254     /// 
00255     __property System::Boolean get_SupportsUniqueValueConstraints();
00256 
00257     /// \brief
00258     /// Determines if the provider supports value constraints list.
00259     /// 
00260     /// \return
00261     /// Returns true if the provider supports value constraints list.
00262     /// 
00263     __property System::Boolean get_SupportsValueConstraintsList();
00264 
00265 /// \cond DOXYGEN-IGNORE
00266 protected:
00267     System::Void ReleaseUnmanagedObject();
00268 /// \endcond
00269 
00270 public private:
00271     ISchemaCapabilitiesImp(System::IntPtr unmanaged, System::Boolean autoDelete);
00272 
00273     inline FdoISchemaCapabilities* GetImpObj();
00274 };
00275 
00276 END_NAMESPACE_OSGEO_FDO_CONNECTIONS_CAPABILITIES
00277 
00278 

Comments or suggestions? Send us feedback.