00001 #ifndef _ARGUMENTDEFINITION_H_ 00002 #define _ARGUMENTDEFINITION_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/PropertyType.h> 00028 #include <Fdo/Schema/DataType.h> 00029 #include <Fdo/Schema/PropertyValueConstraintList.h> 00030 00031 /// \brief 00032 /// The FdoArgumentDefinition class contains metadata that describes an argument to a function. 00033 class FdoArgumentDefinition : public FdoIDisposable 00034 { 00035 00036 /// \cond DOXYGEN-IGNORE 00037 00038 protected: 00039 00040 /// Constructs an instance of an FdoArgumentDefinition using the specified arguments. 00041 FdoArgumentDefinition(FdoString *name, 00042 FdoString *description, 00043 FdoDataType dataType); 00044 00045 /// Constructs an instance of an FdoArgumentDefinition using the specified arguments. 00046 FdoArgumentDefinition(FdoString *name, 00047 FdoString *description, 00048 FdoPropertyType propertyType, 00049 FdoDataType dataType); 00050 00051 /// Constructs an instance of an FdoArgumentDefinition with default properties. 00052 FdoArgumentDefinition(); 00053 00054 virtual ~FdoArgumentDefinition(); 00055 00056 virtual void Dispose(); 00057 00058 /// \endcond 00059 00060 public: 00061 00062 /// \brief 00063 /// Constructs an instance of an FdoArgumentDefinition using the specified arguments. 00064 /// 00065 /// \param name 00066 /// Input the name of the argument. 00067 /// \param description 00068 /// Input a brief description of the argument. 00069 /// \param dataType 00070 /// Input the type of argument. 00071 /// 00072 /// \return 00073 /// Returns FdoArgumentDefinition 00074 /// 00075 FDO_API static FdoArgumentDefinition *Create(FdoString *name, 00076 FdoString *description, 00077 FdoDataType dataType); 00078 00079 /// \brief 00080 /// Constructs an instance of an FdoArgumentDefinition using the specified arguments. 00081 /// 00082 /// \param name 00083 /// Input the name of the argument. 00084 /// \param description 00085 /// Input a brief description of the argument. 00086 /// \param propertyType 00087 /// Input the property type of the argument 00088 /// \param dataType 00089 /// Input the data type of the argument; 00090 /// This is used only if the argument's property type is FdoPropertyType_DataProperty. 00091 /// 00092 /// \return 00093 /// Returns FdoArgumentDefinition 00094 /// 00095 FDO_API static FdoArgumentDefinition *Create(FdoString *name, 00096 FdoString *description, 00097 FdoPropertyType propertyType, 00098 FdoDataType dataType); 00099 00100 /// \brief 00101 /// Gets the name of the argument. 00102 /// 00103 /// \return 00104 /// Returns the argument name 00105 /// 00106 FDO_API FdoString *GetName(); 00107 00108 /// \brief 00109 /// Gets a brief description of the argument. 00110 /// 00111 /// \return 00112 /// Returns the argument description 00113 /// 00114 FDO_API FdoString *GetDescription(); 00115 00116 /// \brief 00117 /// Gets the FdoDataType of the argument. 00118 /// 00119 /// \return 00120 /// Returns the property type of the argument 00121 /// 00122 FDO_API FdoPropertyType GetPropertyType(); 00123 00124 /// \brief 00125 /// Gets the FdoDataType of the argument. 00126 /// 00127 /// \return 00128 /// Returns the data type of the argument; 00129 /// This is valid only if the argument's property type is FdoPropertyType_DataProperty. 00130 /// 00131 FDO_API FdoDataType GetDataType(); 00132 00133 /// \brief 00134 /// Returns the argument value list for the current argument 00135 /// 00136 /// \return 00137 /// Returns the argument value list for the current argument 00138 FDO_API FdoPropertyValueConstraintList *GetArgumentValueList (); 00139 00140 /// \brief 00141 /// Sets the argument value list for the current argument 00142 FDO_API void SetArgumentValueList (FdoPropertyValueConstraintList *argumentValueList); 00143 00144 protected: 00145 00146 wchar_t *m_name; 00147 wchar_t *m_description; 00148 FdoPropertyType m_propertyType; 00149 FdoDataType m_dataType; 00150 FdoPropertyValueConstraintList *m_argumentValueList; 00151 00152 }; 00153 00154 #endif 00155 00156