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

# 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

Please send us your comment about this page