FDO API Reference Feature Data Objects

ISchemaCapabilities.h

Go to the documentation of this file.
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.