FDO .NET API Reference Feature Data Objects

mgFilter.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\Filter\mgBinaryLogicalOperations.h"
00022 
00023 class FdoFilter;
00024 
00025 BEGIN_NAMESPACE_OSGEO_FDO_FILTER
00026 public __gc __interface IFilterProcessor;;
00027 
00028 /// \ingroup (OSGeoFDOFilter)
00029 /// \brief
00030 /// Filter is an abstract class which acts as a base class for condition and operator classes
00031 /// that can occur in a filter expression tree. The Filter class contains
00032 /// operations for converting between the text and expression tree representation
00033 /// of a filter.
00034 public __gc class Filter : public NAMESPACE_OSGEO_RUNTIME::Disposable
00035 {
00036 public:
00037     /// \brief
00038     /// Static operation that parses the well defined text representation and
00039     /// returns a Filter instance.
00040     /// 
00041     /// \param filterText 
00042     /// Input well defined text string
00043     /// 
00044     /// \return
00045     /// Returns root node of parse tree
00046     /// 
00047      static NAMESPACE_OSGEO_FDO_FILTER::Filter* Parse(System::String* filterText);
00048 
00049     /// \brief
00050     /// Abstract operation that takes an IFilterProcessor as an argument.
00051     /// Concrete filter subclasses must override this method and pass themselves
00052     /// as an argument to the appropriate filter processor operation.
00053     /// 
00054     /// \param processor 
00055     /// Input filter processor
00056     /// 
00057     /// \return
00058     /// Returns nothing
00059     /// 
00060     System::Void Process(NAMESPACE_OSGEO_FDO_FILTER::IFilterProcessor* processor);
00061 
00062     /// \brief
00063     /// Converts the filter expression to its well
00064     /// defined text representation.
00065     /// 
00066     /// \return
00067     /// Returns well defined text string
00068     /// 
00069     System::String* ToString();
00070     
00071     /// \brief
00072     /// Static operation that combines two filters using the specified binary
00073     /// logical operation.
00074     /// 
00075     /// \param leftFilter 
00076     /// Input left hand expression as filter expression
00077     /// \param operation 
00078     /// Input binary logical operation
00079     /// \param rightFilter 
00080     /// Input right hand expression as filter expression
00081     /// 
00082     /// \return
00083     /// Returns new filter node
00084     /// 
00085     NAMESPACE_OSGEO_FDO_FILTER::Filter* Combine( NAMESPACE_OSGEO_FDO_FILTER::Filter* leftFilter, NAMESPACE_OSGEO_FDO_FILTER::BinaryLogicalOperations operation, NAMESPACE_OSGEO_FDO_FILTER::Filter* rightFilter);
00086 
00087     /// \brief
00088     /// Static operation that combines two filters using the specified binary
00089     /// logical operation.
00090     /// 
00091     /// \param leftFilter 
00092     /// Input left hand expression as well defined text string
00093     /// \param operation 
00094     /// Input binary logical operation
00095     /// \param rightFilter 
00096     /// Input right hand expression as filter expression
00097     /// 
00098     /// \return
00099     /// Returns new filter node
00100     /// 
00101     NAMESPACE_OSGEO_FDO_FILTER::Filter* Combine(System::String* leftFilter, NAMESPACE_OSGEO_FDO_FILTER::BinaryLogicalOperations operation, NAMESPACE_OSGEO_FDO_FILTER::Filter* rightFilter);
00102 
00103     /// \brief
00104     /// Static operation that combines two filters using the specified binary
00105     /// logical operation.
00106     /// 
00107     /// \param leftFilter 
00108     /// Input left hand expression as filter expression
00109     /// \param operation 
00110     /// Input binary logical operation
00111     /// \param rightFilter 
00112     /// Input right hand expression as well defined text string
00113     /// 
00114     /// \return
00115     /// Returns new filter node
00116     /// 
00117     NAMESPACE_OSGEO_FDO_FILTER::Filter* Combine(NAMESPACE_OSGEO_FDO_FILTER::Filter* leftFilter, NAMESPACE_OSGEO_FDO_FILTER::BinaryLogicalOperations operation, System::String* rightFilter);
00118 
00119     /// \brief
00120     /// Static operation that combines two filters using the specified binary
00121     /// logical operation.
00122     /// 
00123     /// \param leftFilter 
00124     /// Input left hand expression as well defined text string
00125     /// \param operation 
00126     /// Input binary logical operation
00127     /// \param rightFilter 
00128     /// Input right hand expression as well defined text string
00129     /// 
00130     /// \return
00131     /// Returns new filter node
00132     /// 
00133     NAMESPACE_OSGEO_FDO_FILTER::Filter* Combine(System::String* leftFilter, NAMESPACE_OSGEO_FDO_FILTER::BinaryLogicalOperations operation, System::String* rightFilter);
00134 
00135     /// \brief
00136     /// Constructs a Filter object based on an unmanaged instance of the object
00137     /// 
00138     /// \param unmanaged 
00139     /// Input A Pointer to the unmanaged object.
00140     /// 
00141     /// \param autoDelete 
00142     /// Input Indicates if the constructed object should be automatically deleted 
00143     /// once it no longer referenced.
00144     /// 
00145     Filter(System::IntPtr unmanaged, System::Boolean autoDelete);
00146 
00147 public private:
00148     inline FdoFilter* GetImpObj();
00149 
00150 /// \cond DOXYGEN-IGNORE
00151 protected:
00152     System::Void ReleaseUnmanagedObject();
00153 /// \endcond
00154 };
00155 
00156 END_NAMESPACE_OSGEO_FDO_FILTER
00157 
00158 

Comments or suggestions? Send us feedback.