FDO API Reference | Feature Data Objects |
00001 #ifndef _ISCHEMACAPABILITIES_H_ 00002 #define _ISCHEMACAPABILITIES_H_ 00003 // 00004 00005 // 00006 // Copyright (C) 2004-2006 Autodesk, Inc. 00007 // 00008 // This library is free software; you can redistribute it and/or 00009 // modify it under the terms of version 2.1 of the GNU Lesser 00010 // General Public License as published by the Free Software Foundation. 00011 // 00012 // This library is distributed in the hope that it will be useful, 00013 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 // Lesser General Public License for more details. 00016 // 00017 // You should have received a copy of the GNU Lesser General Public 00018 // License along with this library; if not, write to the Free Software 00019 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00020 // 00021 00022 #ifdef _WIN32 00023 #pragma once 00024 #endif 00025 00026 #include <FdoStd.h> 00027 #include <Fdo/Schema/ClassType.h> 00028 #include <Fdo/Schema/DataType.h> 00029 #include <Fdo/Connections/Capabilities/SchemaElementNameType.h> 00030 00031 /// \brief 00032 /// The FdoISchemaCapbilities interface declares the feature provider's level 00033 /// of support for the Feature Schema. 00034 class FdoISchemaCapabilities : public FdoIDisposable 00035 { 00036 public: 00037 /// \brief 00038 /// Returns an array of the FdoClassType objects the feature provider supports. 00039 /// 00040 /// \param length 00041 /// Output the number of class types. 00042 /// 00043 /// \return 00044 /// Returns the list of class types. 00045 /// 00046 FDO_API virtual FdoClassType* GetClassTypes(FdoInt32& length) = 0; 00047 00048 /// \brief 00049 /// Returns an array of the FdoDataType objects the feature provider supports. 00050 /// 00051 /// \param length 00052 /// Output the number of data types. 00053 /// 00054 /// \return 00055 /// Returns the list of data types 00056 /// 00057 FDO_API virtual FdoDataType* GetDataTypes(FdoInt32& length) = 0; 00058 00059 /// \brief 00060 /// Returns the maximum supported length of String, BLOB, or CLOB data 00061 /// properties. For decimal, it is typically the combination of the maximum 00062 /// scale and precision. For other data types that are not variable in size, 00063 /// the value returned is the byte length. 00064 /// 00065 /// \param dataType 00066 /// The data type for which the information is to retrieved. 00067 /// 00068 /// \return 00069 /// Returns the maximum data value length for the identified data type. 00070 /// 00071 FDO_API virtual FdoInt64 GetMaximumDataValueLength(FdoDataType dataType) = 0; 00072 00073 /// \brief 00074 /// Returns the maximum supported precision for a decimal data property. 00075 /// 00076 /// \param 00077 /// None. 00078 /// 00079 /// \return 00080 /// Returns the maximum supported precision for a decimal data property. 00081 /// 00082 FDO_API virtual FdoInt32 GetMaximumDecimalPrecision() = 0; 00083 00084 /// \brief 00085 /// Returns the maximum supported scale for a decimal data property. 00086 /// 00087 /// \param 00088 /// None. 00089 /// 00090 /// \return 00091 /// Returns the maximum supported scale for a decimal data property. 00092 /// 00093 FDO_API virtual FdoInt32 GetMaximumDecimalScale() = 0; 00094 00095 /// \brief 00096 /// Returns the maximum size of a value of the given type. It includes 00097 /// limits for the data store name, shema name, class name, property name 00098 /// and description. 00099 /// 00100 /// \param name 00101 /// The schema element name type identifier for which the information is to 00102 /// be retrieved. Can be any of the following options: FdoSchemaElementNameType_Datastore, 00103 /// FdoSchemaElementNameType_Schema, FdoSchemaElementNameType_Class, FdoSchemaElementNameType_Property or 00104 /// FdoSchemaElementNameType_Description 00105 /// 00106 /// \return 00107 /// Returns the size limitation for the identified schema element. 00108 /// 00109 FDO_API virtual FdoInt32 GetNameSizeLimit(FdoSchemaElementNameType name) = 0; 00110 00111 /// \brief 00112 /// Returns a string that includes all the reserved characters that cannot be 00113 /// used for the various schema element names for the provider. 00114 /// 00115 /// \param 00116 /// None 00117 /// 00118 /// \return 00119 /// Returns a string with the reserved characters for the identified schema element. 00120 /// 00121 FDO_API virtual FdoString* GetReservedCharactersForName() = 0; 00122 00123 /// \brief 00124 /// Returns an array of the FdoDataType objects the feature provider supports for auto-generation. 00125 /// 00126 /// \param length 00127 /// Output the number of data types. 00128 /// 00129 /// \return 00130 /// Returns the list of data types 00131 /// 00132 FDO_API virtual FdoDataType* GetSupportedAutoGeneratedTypes(FdoInt32& length) = 0; 00133 00134 /// \brief 00135 /// Returns a list of property types that can be used for identity properties. 00136 /// 00137 /// \param length 00138 /// Output the number of data types. 00139 /// 00140 /// \return 00141 /// Returns a string with the reserved characters for the identified schema element. 00142 /// 00143 FDO_API virtual FdoDataType* GetSupportedIdentityPropertyTypes(FdoInt32& length) = 0; 00144 00145 /// \brief 00146 /// Determines if the provider supports association property. 00147 /// 00148 /// \return 00149 /// Returns true if the provider support the association property. 00150 /// 00151 FDO_API virtual bool SupportsAssociationProperties() = 0; 00152 00153 /// \brief 00154 /// Determines if the provider can auto-generate unique ID values for a class. 00155 /// 00156 /// \return 00157 /// Returns true if the provider supports id autogeneration. 00158 /// 00159 FDO_API virtual bool SupportsAutoIdGeneration() = 0; 00160 00161 /// \brief 00162 /// Determines if the provider supports multiple identity properties per class. 00163 /// 00164 /// \return 00165 /// Returns true if the provider supports multiple identity properties per class. 00166 /// 00167 FDO_API virtual bool SupportsCompositeId() = 0; 00168 00169 /// \brief 00170 /// Determines if the provider supports composite unique value constraint. 00171 /// 00172 /// \return 00173 /// Returns true if the provider supports composite unique value constraint. 00174 /// 00175 FDO_API virtual bool SupportsCompositeUniqueValueConstraints() = 0; 00176 00177 /// \brief 00178 /// Determines if the provider can auto-generate unique ID values that are unique for the entire datastore, rather than just for a particular class. 00179 /// 00180 /// \return 00181 /// Returns true if the provider supports id autogeneration unique across an datastore. 00182 /// 00183 FDO_API virtual bool SupportsDataStoreScopeUniqueIdGeneration() = 0; 00184 00185 /// \brief 00186 /// Returns TRUE if default values can be specified for a data property 00187 /// definition, FALSE otherwise. 00188 /// 00189 /// \param 00190 /// None 00191 /// 00192 /// \return 00193 /// Returns TRUE if default values can be specified for a data property 00194 /// definition, FALSE otherwise. 00195 /// 00196 FDO_API virtual bool SupportsDefaultValue() = 0; 00197 00198 /// \brief 00199 /// Determines if the provider supports exclusive value range constraints. 00200 /// 00201 /// \return 00202 /// Returns true if the provider supports exclusive value range constraints. 00203 /// 00204 FDO_API virtual bool SupportsExclusiveValueRangeConstraints() = 0; 00205 00206 /// \brief 00207 /// Determines if the provider supports inclusive value range constraints. 00208 /// 00209 /// \return 00210 /// Returns true if the provider supports inclusive value range constraints. 00211 /// 00212 FDO_API virtual bool SupportsInclusiveValueRangeConstraints() = 0; 00213 00214 /// \cond DOXYGEN-IGNORE 00215 /// \brief 00216 /// DEPRECATED: Use SupportsInheritance() instead. 00217 /// Determines if the feature provider supports inheritance. 00218 /// 00219 /// \return 00220 /// Returns true if the feature provider supports inheritance 00221 /// 00222 FDO_API FDO_DEPRECATED virtual bool SupportsInheritence(); 00223 /// \endcond 00224 00225 /// \brief 00226 /// Determines if the feature provider supports inheritance. 00227 /// 00228 /// \return 00229 /// Returns true if the feature provider supports inheritance 00230 /// 00231 FDO_API virtual bool SupportsInheritance() = 0; 00232 00233 /// \brief 00234 /// Determines if the provider supports multiple schemas. Returns false if the provider supports only a single schema. 00235 /// 00236 /// \return 00237 /// Returns true if the provider supports multiple schemas. 00238 /// 00239 FDO_API virtual bool SupportsMultipleSchemas() = 0; 00240 00241 /// \brief 00242 /// Determines if the provider supports the network model. 00243 /// 00244 /// \return 00245 /// Returns true if the provider supports the network model. 00246 /// 00247 FDO_API virtual bool SupportsNetworkModel() = 0; 00248 00249 /// \brief 00250 /// Determines if the provider supports nullable value constraint. 00251 /// 00252 /// \return 00253 /// Returns true if the provider supports nullable value constraint. 00254 /// 00255 FDO_API virtual bool SupportsNullValueConstraints() = 0; 00256 00257 /// \brief 00258 /// Determines if the provider supports object properties. Returns false if the provider supports only data and geometric properties. 00259 /// 00260 /// \return 00261 /// Returns true if the provider supports object properties. 00262 /// 00263 FDO_API virtual bool SupportsObjectProperties() = 0; 00264 00265 /// \brief 00266 /// Determines if the provider support update a schema through the ApplySchema command. 00267 /// If False, then an application can only create a schema once for the provider. They can use the ApplySchema 00268 /// command once for a given datastore. Once the schema is defined, it cannot be changed. If True, then the provider 00269 /// supports the ability to modify or add to the schema after it is defined initially. 00270 /// 00271 /// \return 00272 /// Returns true if the provider supports the update of the schema. 00273 /// 00274 FDO_API virtual bool SupportsSchemaModification() = 0; 00275 00276 /// \brief 00277 /// Determines if the provider supports Schema Mapping Overrides 00278 /// (overrides to the default rules for mapping Feature Schemas to provider-specific 00279 /// physical schemas) 00280 /// 00281 /// \return 00282 /// Returns true if the provider supports Schema Overrides 00283 /// 00284 FDO_API virtual bool SupportsSchemaOverrides() = 0; 00285 00286 /// \brief 00287 /// Determines if the provider supports unique value constraint. 00288 /// 00289 /// \return 00290 /// Returns true if the provider supports unique value constraint. 00291 /// 00292 FDO_API virtual bool SupportsUniqueValueConstraints() = 0; 00293 00294 /// \brief 00295 /// Determines if the provider supports value constraints list. 00296 /// 00297 /// \return 00298 /// Returns true if the provider supports value constraints list. 00299 /// 00300 FDO_API virtual bool SupportsValueConstraintsList() = 0; 00301 }; 00302 #endif 00303 00304
Comments or suggestions? Send us feedback. |