(file) Return to CQLFactor.h CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / CQL

  1 david 1.1.2.3 #ifndef CQLFACTOR_H_HEADER
  2               #define CQLFACTOR_H_HEADER
  3               //%2004////////////////////////////////////////////////////////////////////////
  4               //
  5               // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L. P.;
  6               // IBM Corp.; EMC Corporation, The Open Group.
  7               //
  8               // Permission is hereby granted, free of charge, to any person obtaining a copy
  9               // of this software and associated documentation files (the "Software"), to
 10               // deal in the Software without restriction, including without limitation the
 11               // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 12               // sell copies of the Software, and to permit persons to whom the Software is
 13               // furnished to do so, subject to the following conditions:
 14               // 
 15               // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
 16               // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
 17               // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 18               // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 19               // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 20               // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 21               // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 22 david 1.1.2.3 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 23               //
 24               //==============================================================================
 25               //
 26               // Author: Dave Rosckes (rosckes@us.ibm.com)
 27               //
 28               // Modified By:
 29               //
 30               //%/////////////////////////////////////////////////////////////////////////////
 31 humberto 1.1.2.1 
 32                  #include <Pegasus/Common/Config.h>
 33 humberto 1.1.2.6 #include <Pegasus/Common/CIMInstance.h>
 34                  //#include <Pegasus/CQL/CQLScope.h>
 35 humberto 1.1.2.1 #include <Pegasus/CQL/Linkage.h>
 36                  
 37                  PEGASUS_NAMESPACE_BEGIN
 38 humberto 1.1.2.5 class PEGASUS_CQL_LINKAGE CQLFactory;
 39 humberto 1.1.2.1 class PEGASUS_CQL_LINKAGE CQLExpression;
 40                  class PEGASUS_CQL_LINKAGE CQLFunction;
 41 humberto 1.1.2.6 class PEGASUS_CQL_LINKAGE CQLFactorRep;
 42                  class PEGASUS_CQL_LINKAGE CQLValue;
 43                  class PEGASUS_CQL_LINKAGE CQLScope;
 44                  class PEGASUS_CQL_LINKAGE QueryContext;
 45 humberto 1.1.2.1 
 46                  /**  The CQLFactor could contain a CQLValue, CQLExpression or CQLFunction.
 47                         This class evaluates the object to get a CQLValue.
 48                         If it contains a CQLValue, it will resolve the CQLValue. 
 49                    */
 50 david    1.1.2.3 
 51 humberto 1.1.2.1 class PEGASUS_CQL_LINKAGE CQLFactor
 52                  {
 53                    public:
 54 humberto 1.1.2.9    CQLFactor();
 55 david    1.1.2.2 
 56 humberto 1.1.2.6     CQLFactor(CQLValue& inCQLVal);
 57 humberto 1.1.2.1 
 58                      CQLFactor(CQLExpression& inCQLExp);
 59                  
 60 humberto 1.1.2.6     CQLFactor(CQLFunction& inCQLFunc);
 61 david    1.1.2.2     CQLFactor(const CQLFactor& inCQLFact);
 62 humberto 1.1.2.1 
 63 humberto 1.1.2.7     ~CQLFactor();
 64 humberto 1.1.2.1 
 65                      /** 
 66                             The CQLFactor could contain a CQLValue, CQLExpression or CQLFunction.
 67                             This method evaluates the object to get a CQLValue.
 68                             If it contains a CQLValue, it will resolve the CQLValue by calling the
 69                      resolve method
 70                             on the CQLValue object. 
 71                      
 72                             If it contains a CQLFunction this method will invoke the getValue method
 73                      on 
 74                             CQLFunction, and the returned value will already be resolved.
 75                      
 76                             If it contains a CQLExpression this method will invoke the getValue
 77                      method on 
 78                             CQLExpression, and the returned value will already be resolved.
 79                      
 80                        */
 81 david    1.1.2.2 
 82                     CQLValue resolveValue(CIMInstance CI, QueryContext& QueryCtx);
 83 humberto 1.1.2.8    Boolean isSimple();
 84 david    1.1.2.2    Boolean isSimpleValue();
 85                     CQLValue getValue();
 86                     CQLFunction getCQLFunction();
 87                     CQLExpression getCQLExpression();
 88                     String toString();
 89                     void applyScopes(Array<CQLScope> inScopes);
 90 humberto 1.1.2.9    CQLFactor& operator=(const CQLFactor& rhs);
 91 humberto 1.1.2.6    Boolean operator==(const CQLFactor& factor);
 92                     Boolean operator!=(const CQLFactor& factor);
 93 humberto 1.1.2.1 
 94 humberto 1.1.2.5    friend class CQLFactory;
 95 humberto 1.1.2.1   private:
 96 david    1.1.2.2 
 97 humberto 1.1.2.6     CQLFactorRep *_rep;
 98 humberto 1.1.2.1 };
 99                  
100                  #ifndef PEGASUS_ARRAY_T
101                  #define PEGASUS_ARRAY_T CQLFactor
102                  #include <Pegasus/Common/ArrayInter.h>
103                  #undef PEGASUS_ARRAY_T
104                  #endif
105                  
106                  PEGASUS_NAMESPACE_END
107                  
108 david    1.1.2.3 #endif /* CQLFACTOR_H_HEADER */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2