FDO API Reference Feature Data Objects

IExpressionProcessor.h

Go to the documentation of this file.
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.