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 /// \return 00077 /// Returns the maximum supported precision for a decimal data property. 00078 /// 00079 FDO_API virtual FdoInt32 GetMaximumDecimalPrecision() = 0; 00080 00081 /// \brief 00082 /// Returns the maximum supported scale for a decimal data property. 00083 /// 00084 /// \return 00085 /// Returns the maximum supported scale for a decimal data property. 00086 /// 00087 FDO_API virtual FdoInt32 GetMaximumDecimalScale() = 0; 00088 00089 /// \brief 00090 /// Returns the maximum size of a value of the given type. It includes 00091 /// limits for the data store name, shema name, class name, property name 00092 /// and description. 00093 /// 00094 /// \param name 00095 /// The schema element name type identifier for which the information is to 00096 /// be retrieved. Can be any of the following options: FdoSchemaElementNameType_Datastore, 00097 /// FdoSchemaElementNameType_Schema, FdoSchemaElementNameType_Class, FdoSchemaElementNameType_Property or 00098 /// FdoSchemaElementNameType_Description 00099 /// 00100 /// \return 00101 /// Returns the size limitation for the identified schema element. 00102 /// 00103 FDO_API virtual FdoInt32 GetNameSizeLimit(FdoSchemaElementNameType name) = 0; 00104 00105 /// \brief 00106 /// Returns a string that includes all the reserved characters that cannot be 00107 /// used for the various schema element names for the provider. 00108 /// 00109 /// \return 00110 /// Returns a string with the reserved characters for the identified schema element. 00111 /// 00112 FDO_API virtual FdoString* GetReservedCharactersForName() = 0; 00113 00114 /// \brief 00115 /// Returns an array of the FdoDataType objects the feature provider supports for auto-generation. 00116 /// 00117 /// \param length 00118 /// Output the number of data types. 00119 /// 00120 /// \return 00121 /// Returns the list of data types 00122 /// 00123 FDO_API virtual FdoDataType* GetSupportedAutoGeneratedTypes(FdoInt32& length) = 0; 00124 00125 /// \brief 00126 /// Returns a list of property types that can be used for identity properties. 00127 /// 00128 /// \param length 00129 /// Output the number of data types. 00130 /// 00131 /// \return 00132 /// Returns a string with the reserved characters for the identified schema element. 00133 /// 00134 FDO_API virtual FdoDataType* GetSupportedIdentityPropertyTypes(FdoInt32& length) = 0; 00135 00136 /// \brief 00137 /// Determines if the provider supports association property. 00138 /// 00139 /// \return 00140 /// Returns true if the provider support the association property. 00141 /// 00142 FDO_API virtual bool SupportsAssociationProperties() = 0; 00143 00144 /// \brief 00145 /// Determines if the provider can auto-generate unique ID values for a class. 00146 /// 00147 /// \return 00148 /// Returns true if the provider supports id autogeneration. 00149 /// 00150 FDO_API virtual bool SupportsAutoIdGeneration() = 0; 00151 00152 /// \brief 00153 /// Determines if the provider supports multiple identity properties per class. 00154 /// 00155 /// \return 00156 /// Returns true if the provider supports multiple identity properties per class. 00157 /// 00158 FDO_API virtual bool SupportsCompositeId() = 0; 00159 00160 /// \brief 00161 /// Determines if the provider supports composite unique value constraint. 00162 /// 00163 /// \return 00164 /// Returns true if the provider supports composite unique value constraint. 00165 /// 00166 FDO_API virtual bool SupportsCompositeUniqueValueConstraints() = 0; 00167 00168 /// \brief 00169 /// Determines if the provider can auto-generate unique ID values that are unique for the entire datastore, rather than just for a particular class. 00170 /// 00171 /// \return 00172 /// Returns true if the provider supports id autogeneration unique across an datastore. 00173 /// 00174 FDO_API virtual bool SupportsDataStoreScopeUniqueIdGeneration() = 0; 00175 00176 /// \brief 00177 /// Returns TRUE if default values can be specified for a data property 00178 /// definition, FALSE otherwise. 00179 /// 00180 /// \return 00181 /// Returns TRUE if default values can be specified for a data property 00182 /// definition, FALSE otherwise. 00183 /// 00184 FDO_API virtual bool SupportsDefaultValue() = 0; 00185 00186 /// \brief 00187 /// Determines if the provider supports exclusive value range constraints. 00188 /// 00189 /// \return 00190 /// Returns true if the provider supports exclusive value range constraints. 00191 /// 00192 FDO_API virtual bool SupportsExclusiveValueRangeConstraints() = 0; 00193 00194 /// \brief 00195 /// Determines if the provider supports inclusive value range constraints. 00196 /// 00197 /// \return 00198 /// Returns true if the provider supports inclusive value range constraints. 00199 /// 00200 FDO_API virtual bool SupportsInclusiveValueRangeConstraints() = 0; 00201 00202 /// \cond DOXYGEN-IGNORE 00203 00204 /// \brief 00205 /// DEPRECATED: Use SupportsInheritance() instead. 00206 /// Determines if the feature provider supports inheritance. 00207 /// 00208 /// \return 00209 /// Returns true if the feature provider supports inheritance 00210 /// 00211 FDO_API FDO_DEPRECATED virtual bool SupportsInheritence(); 00212 /// \endcond 00213 00214 /// \brief 00215 /// Determines if the feature provider supports inheritance. 00216 /// 00217 /// \return 00218 /// Returns true if the feature provider supports inheritance 00219 /// 00220 FDO_API virtual bool SupportsInheritance() = 0; 00221 00222 /// \brief 00223 /// Determines if the provider supports multiple schemas. Returns false if the provider supports only a single schema. 00224 /// 00225 /// \return 00226 /// Returns true if the provider supports multiple schemas. 00227 /// 00228 FDO_API virtual bool SupportsMultipleSchemas() = 0; 00229 00230 /// \brief 00231 /// Determines if the provider supports the network model. 00232 /// 00233 /// \return 00234 /// Returns true if the provider supports the network model. 00235 /// 00236 FDO_API virtual bool SupportsNetworkModel() = 0; 00237 00238 /// \brief 00239 /// Determines if the provider supports nullable value constraint. 00240 /// 00241 /// \return 00242 /// Returns true if the provider supports nullable value constraint. 00243 /// 00244 FDO_API virtual bool SupportsNullValueConstraints() = 0; 00245 00246 /// \brief 00247 /// Determines if the provider supports object properties. Returns false if the provider supports only data and geometric properties. 00248 /// 00249 /// \return 00250 /// Returns true if the provider supports object properties. 00251 /// 00252 FDO_API virtual bool SupportsObjectProperties() = 0; 00253 00254 /// \brief 00255 /// Determines if the provider support update a schema through the ApplySchema command. 00256 /// If False, then an application can only create a schema once for the provider. They can use the ApplySchema 00257 /// command once for a given datastore. Once the schema is defined, it cannot be changed. If True, then the provider 00258 /// supports the ability to modify or add to the schema after it is defined initially. 00259 /// 00260 /// \return 00261 /// Returns true if the provider supports the update of the schema. 00262 /// 00263 FDO_API virtual bool SupportsSchemaModification() = 0; 00264 00265 /// \brief 00266 /// Determines if the provider supports Schema Mapping Overrides 00267 /// (overrides to the default rules for mapping Feature Schemas to provider-specific 00268 /// physical schemas) 00269 /// 00270 /// \return 00271 /// Returns true if the provider supports Schema Overrides 00272 /// 00273 FDO_API virtual bool SupportsSchemaOverrides() = 0; 00274 00275 /// \brief 00276 /// Determines if the provider supports unique value constraint. 00277 /// 00278 /// \return 00279 /// Returns true if the provider supports unique value constraint. 00280 /// 00281 FDO_API virtual bool SupportsUniqueValueConstraints() = 0; 00282 00283 /// \brief 00284 /// Determines if the provider supports value constraints list. 00285 /// 00286 /// \return 00287 /// Returns true if the provider supports value constraints list. 00288 /// 00289 FDO_API virtual bool SupportsValueConstraintsList() = 0; 00290 }; 00291 #endif 00292 00293
Comments or suggestions? Send us feedback. |