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 */
|