FDO .NET API Reference Feature Data Objects

mgFunctionDefinition.h

Go to the documentation of this file.
00001 /*
00002 * Copyright (C) 2004-2006  Autodesk, Inc.
00003 * 
00004 * This library is free software; you can redistribute it and/or
00005 * modify it under the terms of version 2.1 of the GNU Lesser
00006 * General Public License as published by the Free Software Foundation.
00007 * 
00008 * This library is distributed in the hope that it will be useful,
00009 * but WITHOUT ANY WARRANTY; without even the implied warranty of
00010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011 * Lesser General Public License for more details.
00012 * 
00013 * You should have received a copy of the GNU Lesser General Public
00014 * License along with this library; if not, write to the Free Software
00015 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
00016 *
00017 */
00018 
00019 #pragma once
00020 
00021 #include "FDO\Schema\mgDataType.h"
00022 #include "FDO\Schema\mgPropertyType.h"
00023 
00024 class FdoFunctionDefinition;
00025 
00026 BEGIN_NAMESPACE_OSGEO_FDO_CONNECTIONS_CAPABILITIES
00027 
00028 public __gc class ArgumentDefinitionCollection;
00029 public __gc class ReadOnlyArgumentDefinitionCollection;
00030 public __gc class SignatureDefinitionCollection;
00031 public __gc class ReadOnlySignatureDefinitionCollection;
00032 
00033 /// \ingroup (OSGeoFDOConnectionsCapabilities)
00034 /// \brief
00035 ///  The FunctionDefinition class contains metadata that describes a function and its arguments.
00036 public __gc class FunctionDefinition : public NAMESPACE_OSGEO_RUNTIME::Disposable
00037 {
00038 public:
00039     /// \brief
00040     ///  Constructs an instance of a FunctionDefinition using the specified arguments.
00041     /// 
00042     /// \param name 
00043     /// Input the name of the function.
00044     /// \param description 
00045     /// Input a brief description.
00046     /// \param returnType 
00047     /// Input the function return type
00048     /// \param arguments 
00049     /// Input the argument definition list
00050     /// 
00051     /// \return
00052     /// Returns FunctionDefinition
00053     /// 
00054     FunctionDefinition (System::String *name,
00055                         System::String *description,
00056                         NAMESPACE_OSGEO_FDO_SCHEMA::DataType returnType,
00057                         NAMESPACE_OSGEO_FDO_CONNECTIONS_CAPABILITIES::ArgumentDefinitionCollection *arguments);
00058 
00059     /// \brief
00060     ///  Constructs an instance of a FunctionDefinition using the specified arguments.
00061     /// 
00062     /// \param name 
00063     /// Input the name of the function.
00064     /// \param description 
00065     /// Input a brief description.
00066     /// \param isAggregate 
00067     /// Input the flag indicating whether or not this is an aggregate function
00068     /// \param signatures 
00069     /// Input the list of possible function signatures
00070     /// 
00071     /// \return
00072     /// Returns FunctionDefinition
00073     /// 
00074     FunctionDefinition (System::String *name,
00075                         System::String *description,
00076                         System::Boolean isAggregate,
00077                         NAMESPACE_OSGEO_FDO_CONNECTIONS_CAPABILITIES::SignatureDefinitionCollection *signatures);
00078 
00079     /// \brief
00080     ///  Gets the name of the function.
00081     /// 
00082     /// \return
00083     /// Returns the name of the function
00084     /// 
00085     __property System::String *get_Name();
00086 
00087     /// \brief
00088     ///  Gets a brief description of the function.
00089     /// 
00090     /// \return
00091     /// Returns the description of the function
00092     /// 
00093     __property System::String *get_Description();
00094 
00095     /// \brief
00096     ///  Gets an array of ArgumentDefinition objects required for the function.
00097     /// 
00098     /// \return
00099     /// Returns the list of argument definitions
00100     /// 
00101     __property NAMESPACE_OSGEO_FDO_CONNECTIONS_CAPABILITIES::ReadOnlyArgumentDefinitionCollection *get_Arguments();
00102 
00103     /// \brief
00104     ///  Gets the PropertyType of the function return value.
00105     /// 
00106     /// \return
00107     /// Returns the function return property type
00108     /// 
00109     __property NAMESPACE_OSGEO_FDO_SCHEMA::PropertyType get_ReturnPropertyType();
00110 
00111     /// \brief
00112     ///  Gets the DataType of the function return value.
00113     /// 
00114     /// \return
00115     /// Returns the function return type
00116     /// 
00117     __property NAMESPACE_OSGEO_FDO_SCHEMA::DataType get_ReturnType();
00118 
00119     /// \brief
00120     /// Indicates that this object allows its name to change. This function is
00121     /// defined so that this class can be a NamedCollection element.
00122     /// 
00123     /// \return
00124     /// Returns true if the name of the object can be changed.
00125     /// 
00126     __property System::Boolean get_CanSetName();
00127 
00128     /// \brief
00129     /// Gets an array of SignatureDefinition objects that describe the different signatures
00130     /// supported by the function.
00131     ///
00132     __property NAMESPACE_OSGEO_FDO_CONNECTIONS_CAPABILITIES::ReadOnlySignatureDefinitionCollection *get_Signatures();
00133 
00134     ///
00135     /// \brief
00136     /// Returns true if the function is an aggregate function and false if it is a simple function.
00137     __property System::Boolean get_IsAggregate();
00138 
00139 /// \cond DOXYGEN-IGNORE
00140 protected:
00141     System::Void ReleaseUnmanagedObject();
00142 /// \endcond
00143 
00144 public private:
00145     FunctionDefinition(System::IntPtr unmanaged, System::Boolean autoDelete);
00146 
00147     inline FdoFunctionDefinition* GetImpObj();
00148 };
00149 
00150 END_NAMESPACE_OSGEO_FDO_CONNECTIONS_CAPABILITIES
00151 
00152 

Comments or suggestions? Send us feedback.