FDO API Reference | Feature Data Objects |
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. |