FDO API Reference Feature Data Objects

IFilterProcessor.h

Go to the documentation of this file.
00001 #ifndef _IFILTERPROCESSOR_H_
00002 #define _IFILTERPROCESSOR_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/Filter/BinaryLogicalOperator.h>
00028 #include <Fdo/Filter/ComparisonCondition.h>
00029 #include <Fdo/Filter/DistanceCondition.h>
00030 #include <Fdo/Filter/InCondition.h>
00031 #include <Fdo/Filter/NullCondition.h>
00032 #include <Fdo/Filter/SpatialCondition.h>
00033 #include <Fdo/Filter/UnaryLogicalOperator.h>
00034 
00035 /// \brief
00036 /// The FdoIFilterProcessor interface can be used to process the nodes in a filter
00037 /// tree. It declares a process operation for each concrete class in the filter
00038 /// hierarchy. Providers or client applications can create classes that realize
00039 /// this interface to do something meaningful with a filter hierarchy. For
00040 /// example, a RDBMS feature provider can implement a processor class to convert a
00041 /// filter hierarchy to the SQL equivalent syntax.
00042 class FdoIFilterProcessor : public FdoIDisposable
00043 {
00044 public:
00045     /// \brief
00046     /// Processes the FdoBinaryLogicalOperator passed in as an argument.
00047     /// 
00048     /// \param filter 
00049     /// Input the FdoBinaryLogicalOperator
00050     /// 
00051     /// \return
00052     /// Returns nothing
00053     /// 
00054     virtual void ProcessBinaryLogicalOperator(FdoBinaryLogicalOperator& filter) = 0;
00055 
00056     /// \brief
00057     /// Processes the FdoUnaryLogicalOperator passed in as an argument.
00058     /// 
00059     /// \param filter 
00060     /// Input the FdoUnaryLogicalOperator
00061     /// 
00062     /// \return
00063     /// Returns nothing
00064     /// 
00065     virtual void ProcessUnaryLogicalOperator(FdoUnaryLogicalOperator& filter) = 0;
00066 
00067     /// \brief
00068     /// Processes the FdoComparisonCondition passed in as an argument.
00069     /// 
00070     /// \param filter 
00071     /// Input the FdoComparisonCondition
00072     /// 
00073     /// \return
00074     /// Returns nothing
00075     /// 
00076     virtual void ProcessComparisonCondition(FdoComparisonCondition& filter) = 0;
00077 
00078     /// \brief
00079     /// Processes the FdoInCondition passed in as an argument.
00080     /// 
00081     /// \param filter 
00082     /// Input the FdoInCondition
00083     /// 
00084     /// \return
00085     /// Returns nothing
00086     /// 
00087     virtual void ProcessInCondition(FdoInCondition& filter) = 0;
00088 
00089     /// \brief
00090     /// Processes the FdoNullCondition passed in as an argument.
00091     /// 
00092     /// \param filter 
00093     /// Input the FdoNullCondition
00094     /// 
00095     /// \return
00096     /// Returns nothing
00097     /// 
00098     virtual void ProcessNullCondition(FdoNullCondition& filter) = 0;
00099 
00100     /// \brief
00101     /// Processes the FdoSpatialCondition passed in as an argument.
00102     /// 
00103     /// \param filter 
00104     /// Input the FdoSpatialCondition
00105     /// 
00106     /// \return
00107     /// Returns nothing
00108     /// 
00109     virtual void ProcessSpatialCondition(FdoSpatialCondition& filter) = 0;
00110 
00111     /// \brief
00112     /// Processes the FdoDistanceCondition passed in as an argument.
00113     /// 
00114     /// \param filter 
00115     /// Input the FdoDistanceCondition
00116     /// 
00117     /// \return
00118     /// Returns nothing
00119     /// 
00120     virtual void ProcessDistanceCondition(FdoDistanceCondition& filter) = 0;
00121 };
00122 #endif
00123 
00124 

Comments or suggestions? Send us feedback.