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

  1 chuck 1.2 //%2003////////////////////////////////////////////////////////////////////////
  2           //
  3           // Copyright (c) 2000, 2001, 2002  BMC Software, Hewlett-Packard Development
  4           // Company, L. P., IBM Corp., The Open Group, Tivoli Systems.
  5           // Copyright (c) 2003 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 chuck 1.2 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 23           //
 24           //==============================================================================
 25           //
 26           // Authors: David Rosckes (rosckes@us.ibm.com)
 27           //          Bert Rivero (hurivero@us.ibm.com)
 28           //          Chuck Carmack (carmack@us.ibm.com)
 29           //          Brian Lucier (lucier@us.ibm.com)
 30           //
 31           // Modified By: 
 32           //
 33           //%/////////////////////////////////////////////////////////////////////////////
 34           
 35           #ifndef Pegasus_CQLExpressionRep_h
 36           #define Pegasus_CQLExpressionRep_h
 37           
 38           #include <Pegasus/Common/Config.h>
 39           #include <Pegasus/CQL/CQLValue.h>
 40           #include <Pegasus/CQL/Linkage.h>
 41           #include <Pegasus/CQL/CQLTerm.h>
 42           
 43 chuck 1.2 PEGASUS_NAMESPACE_BEGIN
 44           
 45           class PEGASUS_CQL_LINKAGE CQLFactory;
 46           class PEGASUS_QUERYCOMMON_LINKAGE QueryContext;
 47           
 48           class PEGASUS_CQL_LINKAGE CQLExpressionRep
 49           {
 50             public:
 51             CQLExpressionRep(){}
 52           
 53             CQLExpressionRep(const CQLTerm& theTerm);
 54             CQLExpressionRep(const CQLExpressionRep* rep);
 55           
 56             ~CQLExpressionRep();
 57             
 58             CQLValue resolveValue(const CIMInstance& CI, const QueryContext& QueryCtx);
 59             
 60             void appendOperation(const TermOpType theTermOpType, const CQLTerm& theTerm);
 61             
 62             String toString()const;
 63             
 64 chuck 1.2   Boolean isSimple()const;
 65             
 66             Boolean isSimpleValue()const;
 67             
 68             Array<CQLTerm> getTerms()const;
 69             
 70             Array<TermOpType> getOperators()const;
 71             
 72             void applyContext(QueryContext& inContext,
 73           		    CQLChainedIdentifier& inCid);
 74             
 75             Boolean operator==(const CQLExpressionRep& rep)const;
 76             
 77             Boolean operator!=(const CQLExpressionRep& rep)const;
 78             
 79             friend class CQLFactory;
 80             
 81            private:
 82             
 83             /**  The _TermOperators member variable is an 
 84                  array of operators that are valid to operate on Terms in a CQL
 85 chuck 1.2        expression. 
 86                  Valid operators include concatentation, plus and minus.
 87                  
 88                  The array is ordered according to the operation from left to right.
 89             */
 90             Array<TermOpType> _TermOperators;
 91             
 92             /**  The _CQLTerms member variable is an 
 93                  array of operands that are valid in a CQL expression. 
 94                  
 95                  The array is ordered according to the operation from left to right.
 96             */
 97             Array<CQLTerm> _CQLTerms;
 98             
 99             Boolean _isSimple;
100           };
101           
102           PEGASUS_NAMESPACE_END
103           
104           
105           #endif /* CQLEXPRESSION_H_HEADER_INCLUDED_BEE5929F */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2