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 00030 /// \brief 00031 /// The FdoISchemaCapbilities interface declares the feature provider's level 00032 /// of support for the Feature Schema. 00033 class FdoISchemaCapabilities : public FdoIDisposable 00034 { 00035 public: 00036 /// \brief 00037 /// Returns an array of the FdoClassType objects the feature provider supports. 00038 /// 00039 /// \param length 00040 /// Output the number of class types. 00041 /// 00042 /// \return 00043 /// Returns the list of class types. 00044 /// 00045 FDO_API virtual FdoClassType* GetClassTypes(FdoInt32& length) = 0; 00046 00047 /// \brief 00048 /// Returns an array of the FdoDataType objects the feature provider supports. 00049 /// 00050 /// \param length 00051 /// Output the number of data types. 00052 /// 00053 /// \return 00054 /// Returns the list of data types 00055 /// 00056 FDO_API virtual FdoDataType* GetDataTypes(FdoInt32& length) = 0; 00057 /// \cond DOXYGEN-IGNORE 00058 /// \brief 00059 /// DEPRECATED: Use SupportsInheritance() instead. 00060 /// Determines if the feature provider supports inheritance. 00061 /// 00062 /// \return 00063 /// Returns true if the feature provider supports inheritance 00064 /// 00065 FDO_API FDO_DEPRECATED virtual bool SupportsInheritence(); 00066 /// \endcond 00067 /// \brief 00068 /// Determines if the feature provider supports inheritance. 00069 /// 00070 /// \return 00071 /// Returns true if the feature provider supports inheritance 00072 /// 00073 FDO_API virtual bool SupportsInheritance() = 0; 00074 00075 /// \brief 00076 /// Determines if the provider supports multiple schemas. Returns false if the provider supports only a single schema. 00077 /// 00078 /// \return 00079 /// Returns true if the provider supports multiple schemas. 00080 /// 00081 FDO_API virtual bool SupportsMultipleSchemas() = 0; 00082 00083 /// \brief 00084 /// Determines if the provider supports object properties. Returns false if the provider supports only data and geometric properties. 00085 /// 00086 /// \return 00087 /// Returns true if the provider supports object properties. 00088 /// 00089 FDO_API virtual bool SupportsObjectProperties() = 0; 00090 00091 /// \brief 00092 /// Determines if the provider supports association property. 00093 /// 00094 /// \return 00095 /// Returns true if the provider support the association property. 00096 /// 00097 FDO_API virtual bool SupportsAssociationProperties() = 0; 00098 00099 /// \brief 00100 /// Determines if the provider supports Schema Mapping Overrides 00101 /// (overrides to the default rules for mapping Feature Schemas to provider-specific 00102 /// physical schemas) 00103 /// 00104 /// \return 00105 /// Returns true if the provider supports Schema Overrides 00106 /// 00107 FDO_API virtual bool SupportsSchemaOverrides() = 0; 00108 00109 /// \brief 00110 /// Determines if the provider supports the network model. 00111 /// 00112 /// \return 00113 /// Returns true if the provider supports the network model. 00114 /// 00115 FDO_API virtual bool SupportsNetworkModel() = 0; 00116 00117 /// \brief 00118 /// Determines if the provider can auto-generate unique ID values for a class. 00119 /// 00120 /// \return 00121 /// Returns true if the provider supports id autogeneration. 00122 /// 00123 FDO_API virtual bool SupportsAutoIdGeneration() = 0; 00124 00125 /// \brief 00126 /// Determines if the provider can auto-generate unique ID values that are unique for the entire datastore, rather than just for a particular class. 00127 /// 00128 /// \return 00129 /// Returns true if the provider supports id autogeneration unique across an datastore. 00130 /// 00131 FDO_API virtual bool SupportsDataStoreScopeUniqueIdGeneration() = 0; 00132 00133 /// \brief 00134 /// Returns an array of the FdoDataType objects the feature provider supports for auto-generation. 00135 /// 00136 /// \param length 00137 /// Output the number of data types. 00138 /// 00139 /// \return 00140 /// Returns the list of data types 00141 /// 00142 FDO_API virtual FdoDataType* GetSupportedAutoGeneratedTypes(FdoInt32& length) = 0; 00143 00144 /// \brief 00145 /// Determines if the provider support update a schema through the ApplySchema command. 00146 /// If False, then an application can only create a schema once for the provider. They can use the ApplySchema 00147 /// command once for a given datastore. Once the schema is defined, it cannot be changed. If True, then the provider 00148 /// supports the ability to modify or add to the schema after it is defined initially. 00149 /// 00150 /// \return 00151 /// Returns true if the provider supports the update of the schema. 00152 /// 00153 FDO_API virtual bool SupportsSchemaModification() = 0; 00154 00155 /// \brief 00156 /// Determines if the provider supports inclusive value range constraints. 00157 /// 00158 /// \return 00159 /// Returns true if the provider supports inclusive value range constraints. 00160 /// 00161 FDO_API virtual bool SupportsInclusiveValueRangeConstraints() = 0; 00162 00163 /// \brief 00164 /// Determines if the provider supports exclusive value range constraints. 00165 /// 00166 /// \return 00167 /// Returns true if the provider supports exclusive value range constraints. 00168 /// 00169 FDO_API virtual bool SupportsExclusiveValueRangeConstraints() = 0; 00170 00171 /// \brief 00172 /// Determines if the provider supports value constraints list. 00173 /// 00174 /// \return 00175 /// Returns true if the provider supports value constraints list. 00176 /// 00177 FDO_API virtual bool SupportsValueConstraintsList() = 0; 00178 00179 /// \brief 00180 /// Determines if the provider supports nullable value constraint. 00181 /// 00182 /// \return 00183 /// Returns true if the provider supports nullable value constraint. 00184 /// 00185 FDO_API virtual bool SupportsNullValueConstraints() = 0; 00186 00187 /// \brief 00188 /// Determines if the provider supports unique value constraint. 00189 /// 00190 /// \return 00191 /// Returns true if the provider supports unique value constraint. 00192 /// 00193 FDO_API virtual bool SupportsUniqueValueConstraints() = 0; 00194 00195 /// \brief 00196 /// Determines if the provider supports composite unique value constraint. 00197 /// 00198 /// \return 00199 /// Returns true if the provider supports composite unique value constraint. 00200 /// 00201 FDO_API virtual bool SupportsCompositeUniqueValueConstraints() = 0; 00202 00203 /// \brief 00204 /// Determines if the provider supports multiple identity properties per class. 00205 /// 00206 /// \return 00207 /// Returns true if the provider supports multiple identity properties per class. 00208 /// 00209 FDO_API virtual bool SupportsCompositeId() = 0; 00210 }; 00211 #endif 00212 00213
Comments or suggestions? Send us feedback. |