FDO .NET API Reference Feature Data Objects

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

Comments or suggestions? Send us feedback.