- Main Page
- Related Pages
- Modules
- Classes
- Files

# 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

Please send us your comment about this page