version 1.5, 2002/08/21 22:45:50
|
version 1.5.6.1, 2003/01/27 21:26:52
|
|
|
// | // |
// Author: Mike Brasher (mbrasher@bmc.com) | // Author: Mike Brasher (mbrasher@bmc.com) |
// | // |
// Modified By: |
// Modified By: Carol Ann Krug Graves, Hewlett-Packard Company |
|
// (carolann_graves@hp.com) |
// | // |
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
| |
|
|
| |
#include <Pegasus/Common/Config.h> | #include <Pegasus/Common/Config.h> |
#include <Pegasus/Common/ArrayInternal.h> | #include <Pegasus/Common/ArrayInternal.h> |
#include <Pegasus/Common/String.h> |
#include <Pegasus/Common/CIMName.h> |
|
#include <Pegasus/Common/CIMPropertyList.h> |
#include <Pegasus/WQL/WQLOperation.h> | #include <Pegasus/WQL/WQLOperation.h> |
#include <Pegasus/WQL/WQLOperand.h> | #include <Pegasus/WQL/WQLOperand.h> |
#include <Pegasus/WQL/WQLPropertySource.h> | #include <Pegasus/WQL/WQLPropertySource.h> |
|
|
| |
/** Accessor. | /** Accessor. |
*/ | */ |
const String& getClassName() const |
const CIMName& getClassName() const |
{ | { |
return _className; | return _className; |
} | } |
|
|
/** Modifier. This method should not be called by the user (only by the | /** Modifier. This method should not be called by the user (only by the |
parser). | parser). |
*/ | */ |
void setClassName(const String& className) |
void setClassName(const CIMName& className) |
{ | { |
_className = className; | _className = className; |
} | } |
| |
|
/** |
|
Returns true if the query selects all properties ("*") |
|
*/ |
|
Boolean getAllProperties() const; |
|
|
|
/** |
|
Used by the parser to indicate the query selects all properties ("*") |
|
This method should not be called by the user (only by the parser). |
|
*/ |
|
void setAllProperties(const Boolean allProperties); |
|
|
/** Returns the number of property names which were indicated in the | /** Returns the number of property names which were indicated in the |
selection list. | selection list. |
|
This function should only be used if getAllProperties() returns false. |
*/ | */ |
Uint32 getSelectPropertyNameCount() const | Uint32 getSelectPropertyNameCount() const |
{ | { |
|
|
} | } |
| |
/** Gets the i-th selected property name in the list. | /** Gets the i-th selected property name in the list. |
|
This function should only be used if getAllProperties() returns false. |
*/ | */ |
const String& getSelectPropertyName(Uint32 i) const |
const CIMName& getSelectPropertyName(Uint32 i) const |
{ | { |
return _selectPropertyNames[i]; | return _selectPropertyNames[i]; |
} | } |
| |
/** Appends a property name to the property name list. This user should |
/** |
|
Returns a CIMPropertyList containing the selected properties. |
|
The list is NULL if the query selects all properties (SELECT * FROM...). |
|
*/ |
|
const CIMPropertyList getSelectPropertyList() const; |
|
|
|
/** Appends a property name to the property name list. The user should |
not call this method; it should only be called by the parser. | not call this method; it should only be called by the parser. |
*/ | */ |
void appendSelectPropertyName(const String& x) |
void appendSelectPropertyName(const CIMName& x) |
{ | { |
_selectPropertyNames.append(x); | _selectPropertyNames.append(x); |
} | } |
|
|
| |
/** Gets the i-th unique property appearing in the where clause. | /** Gets the i-th unique property appearing in the where clause. |
*/ | */ |
const String& getWherePropertyName(Uint32 i) const |
const CIMName& getWherePropertyName(Uint32 i) const |
{ | { |
return _wherePropertyNames[i]; | return _wherePropertyNames[i]; |
} | } |
| |
/** Appends a property name to the where property name list. This user |
/** |
|
Returns a CIMPropertyList containing the unique properties used in the |
|
WHERE clause |
|
*/ |
|
const CIMPropertyList getWherePropertyList() const; |
|
|
|
/** Appends a property name to the where property name list. The user |
should not call this method; it should only be called by the parser. | should not call this method; it should only be called by the parser. |
| |
@param x name of the property. | @param x name of the property. |
@return false if a property with that name already exists. | @return false if a property with that name already exists. |
*/ | */ |
Boolean appendWherePropertyName(const String& x); |
Boolean appendWherePropertyName(const CIMName& x); |
| |
/** Appends an operation to the operation array. This method should only | /** Appends an operation to the operation array. This method should only |
be called by the parser itself. | be called by the parser itself. |
|
|
// WHERE ... | // WHERE ... |
// | // |
| |
String _className; |
CIMName _className; |
|
|
|
// |
|
// Indicates that all properties are selected (i.e. SELECT * FROM ...) |
|
// |
|
Boolean _allProperties; |
| |
// | // |
// The list of property names being selected. For example, see "firstName", | // The list of property names being selected. For example, see "firstName", |
|
|
// FROM TargetClass | // FROM TargetClass |
// WHERE ... | // WHERE ... |
// | // |
|
// NOTE: if the query selects all properties, this list is empty, and |
|
// _allProperties is true |
|
// |
|
// NOTE: duplicate property names are not removed from the select list |
|
// (e.g. SELECT firstName, firstName FROM...) results in a list of |
|
// two properties |
|
// |
| |
Array<String> _selectPropertyNames; |
Array<CIMName> _selectPropertyNames; |
| |
// | // |
// The unique list of property names appearing in the WHERE clause. | // The unique list of property names appearing in the WHERE clause. |
|
|
// only appear once in this list. | // only appear once in this list. |
// | // |
| |
Array<String> _wherePropertyNames; |
Array<CIMName> _wherePropertyNames; |
| |
// | // |
// The list of operations encountered while parsing the WHERE clause. | // The list of operations encountered while parsing the WHERE clause. |
|
|
Array<WQLOperation> _operations; | Array<WQLOperation> _operations; |
| |
// | // |
// The list of operands encountered while parsing the WHERE clause. They |
// The list of operands encountered while parsing the WHERE clause. The |
// query just above would generate the following stream of operands: | // query just above would generate the following stream of operands: |
// | // |
// count, 10, peak, 20, state, "OKAY" | // count, 10, peak, 20, state, "OKAY" |