FDO API Reference Feature Data Objects
Main Page | Modules | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

ArgumentDefinition.h

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

Comments or suggestions? Send us feedback.