FDO API Reference | Feature Data Objects |
00001 #ifndef _EXPRESSIONPROCESSOR_H_ 00002 #define _EXPRESSIONPROCESSOR_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/Expression/BinaryExpression.h> 00028 #include <Fdo/Expression/UnaryExpression.h> 00029 #include <Fdo/Expression/Function.h> 00030 #include <Fdo/Expression/Identifier.h> 00031 #include <Fdo/Expression/ComputedIdentifier.h> 00032 #include <Fdo/Expression/Parameter.h> 00033 #include <Fdo/Expression/BooleanValue.h> 00034 #include <Fdo/Expression/ByteValue.h> 00035 #include <Fdo/Expression/DateTimeValue.h> 00036 #include <Fdo/Expression/DecimalValue.h> 00037 #include <Fdo/Expression/DoubleValue.h> 00038 #include <Fdo/Expression/Int16Value.h> 00039 #include <Fdo/Expression/Int32Value.h> 00040 #include <Fdo/Expression/Int64Value.h> 00041 #include <Fdo/Expression/SingleValue.h> 00042 #include <Fdo/Expression/StringValue.h> 00043 #include <Fdo/Expression/BLOBValue.h> 00044 #include <Fdo/Expression/CLOBValue.h> 00045 #include <Fdo/Expression/GeometryValue.h> 00046 00047 /// \brief 00048 /// The FdoIExpressionProcessor interface can be used to process the nodes in an 00049 /// Expression tree. It declares an process operation for each concrete class in 00050 /// the FdoExpression hierarchy. Providers or client applications can create 00051 /// classes that realize this interface to do something meaningful with an 00052 /// FdoExpression hierarchy. For example, an RDBMS feature provider implements a 00053 /// processor class to convert an FdoExpression hierarchy to the SQL equivalent 00054 /// syntax. 00055 class FdoIExpressionProcessor : public FdoIDisposable 00056 { 00057 public: 00058 00059 /// \brief 00060 /// Processes the FdoBinaryExpression passed in as an argument. 00061 /// 00062 /// \param expr 00063 /// Input binary expression 00064 /// 00065 /// \return 00066 /// Returns nothing 00067 /// 00068 virtual void ProcessBinaryExpression(FdoBinaryExpression& expr) = 0; 00069 00070 /// \brief 00071 /// Processes the FdoUnaryExpression passed in as an argument. 00072 /// 00073 /// \param expr 00074 /// Input unary expression 00075 /// 00076 /// \return 00077 /// Returns nothing 00078 /// 00079 virtual void ProcessUnaryExpression(FdoUnaryExpression& expr) = 0; 00080 00081 /// \brief 00082 /// Processes the FdoFunction passed in as an argument. 00083 /// 00084 /// \param expr 00085 /// Input function 00086 /// 00087 /// \return 00088 /// Returns nothing 00089 /// 00090 virtual void ProcessFunction(FdoFunction& expr) = 0; 00091 00092 /// \brief 00093 /// Processes the FdoIdentifier passed in as an argument. 00094 /// 00095 /// \param expr 00096 /// Input indentifier 00097 /// 00098 /// \return 00099 /// Returns nothing 00100 /// 00101 virtual void ProcessIdentifier(FdoIdentifier& expr) = 0; 00102 00103 /// \brief 00104 /// Processes the FdoComputedIdentifier passed in as an argument. 00105 /// 00106 /// \param expr 00107 /// Input indentifier 00108 /// 00109 /// \return 00110 /// Returns nothing 00111 /// 00112 virtual void ProcessComputedIdentifier(FdoComputedIdentifier& expr) = 0; 00113 00114 /// \brief 00115 /// Processes the FdoParameter passed in as an argument. 00116 /// 00117 /// \param expr 00118 /// Input parameter 00119 /// 00120 /// \return 00121 /// Returns nothing 00122 /// 00123 virtual void ProcessParameter(FdoParameter& expr) = 0; 00124 00125 /// \brief 00126 /// Processes the FdoBooleanValue passed in as an argument. 00127 /// 00128 /// \param expr 00129 /// Input data value 00130 /// 00131 /// \return 00132 /// Returns nothing 00133 /// 00134 virtual void ProcessBooleanValue(FdoBooleanValue& expr) = 0; 00135 00136 /// \brief 00137 /// Processes the FdoByteValue passed in as an argument. 00138 /// 00139 /// \param expr 00140 /// Input data value 00141 /// 00142 /// \return 00143 /// Returns nothing 00144 /// 00145 virtual void ProcessByteValue(FdoByteValue& expr) = 0; 00146 00147 /// \brief 00148 /// Processes the FdoDateTimeValue passed in as an argument. 00149 /// 00150 /// \param expr 00151 /// Input data value 00152 /// 00153 /// \return 00154 /// Returns nothing 00155 /// 00156 virtual void ProcessDateTimeValue(FdoDateTimeValue& expr) = 0; 00157 00158 /// \brief 00159 /// Processes the FdoDecimalValue passed in as an argument. 00160 /// 00161 /// \param expr 00162 /// Input data value 00163 /// 00164 /// \return 00165 /// Returns nothing 00166 /// 00167 virtual void ProcessDecimalValue(FdoDecimalValue& expr) = 0; 00168 00169 /// \brief 00170 /// Processes the FdoDoubleValue passed in as an argument. 00171 /// 00172 /// \param expr 00173 /// Input data value 00174 /// 00175 /// \return 00176 /// Returns nothing 00177 /// 00178 virtual void ProcessDoubleValue(FdoDoubleValue& expr) = 0; 00179 00180 /// \brief 00181 /// Processes the FdoInt16Value passed in as an argument. 00182 /// 00183 /// \param expr 00184 /// Input data value 00185 /// 00186 /// \return 00187 /// Returns nothing 00188 /// 00189 virtual void ProcessInt16Value(FdoInt16Value& expr) = 0; 00190 00191 /// \brief 00192 /// Processes the FdoInt32Value passed in as an argument. 00193 /// 00194 /// \param expr 00195 /// Input data value 00196 /// 00197 /// \return 00198 /// Returns nothing 00199 /// 00200 virtual void ProcessInt32Value(FdoInt32Value& expr) = 0; 00201 00202 /// \brief 00203 /// Processes the FdoInt64Value passed in as an argument. 00204 /// 00205 /// \param expr 00206 /// Input data value 00207 /// 00208 /// \return 00209 /// Returns nothing 00210 /// 00211 virtual void ProcessInt64Value(FdoInt64Value& expr) = 0; 00212 00213 /// \brief 00214 /// Processes the FdoSingleValue passed in as an argument. 00215 /// 00216 /// \param expr 00217 /// Input data value 00218 /// 00219 /// \return 00220 /// Returns nothing 00221 /// 00222 virtual void ProcessSingleValue(FdoSingleValue& expr) = 0; 00223 00224 /// \brief 00225 /// Processes the FdoStringValue passed in as an argument. 00226 /// 00227 /// \param expr 00228 /// Input data value 00229 /// 00230 /// \return 00231 /// Returns nothing 00232 /// 00233 virtual void ProcessStringValue(FdoStringValue& expr) = 0; 00234 00235 /// \brief 00236 /// Processes the FdoBLOBValue passed in as an argument. 00237 /// 00238 /// \param expr 00239 /// Input data value 00240 /// 00241 /// \return 00242 /// Returns nothing 00243 /// 00244 virtual void ProcessBLOBValue(FdoBLOBValue& expr) = 0; 00245 00246 /// \brief 00247 /// Processes the FdoCLOBValue passed in as an argument. 00248 /// 00249 /// \param expr 00250 /// Input data value 00251 /// 00252 /// \return 00253 /// Returns nothing 00254 /// 00255 virtual void ProcessCLOBValue(FdoCLOBValue& expr) = 0; 00256 00257 /// \brief 00258 /// Processes the FdoGeometryValue passed in as an argument. 00259 /// 00260 /// \param expr 00261 /// Input geometry value 00262 /// 00263 /// \return 00264 /// Returns nothing 00265 /// 00266 virtual void ProcessGeometryValue(FdoGeometryValue& expr) = 0; 00267 }; 00268 #endif 00269 00270
Comments or suggestions? Send us feedback. |