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

# 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

Please send us your comment about this page