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

File: [Pegasus] / pegasus / src / Pegasus / CQL / CQLTermRep.h (download)
Revision: 1.1.2.1, Tue Sep 7 17:26:54 2004 UTC (19 years, 10 months ago) by humberto
Branch: CQL_2_5_BRANCH
Changes since 1.1: +69 -0 lines
PEP#: 138

TITLE: CQL updates

DESCRIPTION: CQL updates

#ifndef Pegasus_CQLTermRep_h
#define Pegasus_CQLTermRep_h

#include <Pegasus/Common/Config.h>
#include <Pegasus/CQL/CQLValue.h>
#include <Pegasus/CQL/Linkage.h>
#include <Pegasus/CQL/CQLFactor.h>

PEGASUS_NAMESPACE_BEGIN

class PEGASUS_CQL_LINKAGE CQLFactory;
class PEGASUS_CQL_LINKAGE QueryContext;
/** The CQLTerm class encapsulates each CQL term in a CQL expression.  

This class contains an array of CQLFactor objects and an array of CQLOperator
objects.
  */
// 
/**
  The CQLTerm class encapsulates a generic CQL term to make it 
   easier to break into pieces (factors) and process the term.  

   A CQL term is made up of factors and operators. 
   For example,  'A * B' is a CQLTerm, where 'A' and 'B' are factors, and '*'
is an operator on a factor.

   There must be exactly one more factor than there are operators.
  */
class PEGASUS_CQL_LINKAGE CQLTermRep
{
  public:
   CQLTermRep();
    /** constructor takes one CQLFactor object.
      */
    CQLTermRep(CQLFactor theFactor);
    CQLTermRep(const CQLTermRep& rep);
    ~CQLTermRep();

    /**  the getValue method evaluates the CQL term and returns the value.
          Any property that need to be resolved into a value is taken from the
    CIMInstance.
      */
    CQLValue resolveValue(CIMInstance CI, QueryContext& QueryCtx);

    /** The appendOperation is used by Bison.
          It is invoked 0 or more times for the CQLTerm, and
          when invoked will always pass in an integer that is the Factor operation
          type and a CQLFactor object.
      */
    void appendOperation(FactorOpType inFactorOpType, CQLFactor inFactor);

   String toString();
   Boolean isSimpleValue();
   Array<CQLFactor> getFactors();
   Array<FactorOpType> getOperators();
   void applyScopes(Array<CQLScope> inScope); 
   friend class CQLFactory;

  private:
    
    Array<FactorOpType> _FactorOperators;

    Array<CQLFactor> _Factors;

};

PEGASUS_NAMESPACE_END

#endif 

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2