1 chuck 1.1.2.6 //%2004////////////////////////////////////////////////////////////////////////
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) 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 chuck 1.1.2.6 // 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 humberto 1.1.2.2 #include "CQLSelectStatement.h"
|
36 humberto 1.1.2.4 #include "CQLSelectStatementRep.h"
|
37 chuck 1.1.2.6 #include <Pegasus/Common/InternalException.h>
|
38 humberto 1.1.2.1
39 PEGASUS_NAMESPACE_BEGIN
|
40 humberto 1.1.2.2
|
41 chuck 1.1.2.6 CQLSelectStatement::CQLSelectStatement()
42 :SelectStatement()
43 {
44 _rep = new CQLSelectStatementRep();
|
45 humberto 1.1.2.5 }
46
|
47 chuck 1.1.2.6 CQLSelectStatement::CQLSelectStatement(String& inQlang, String& inQuery, QueryContext* inCtx)
48 :SelectStatement()
|
49 humberto 1.1.2.2 {
|
50 chuck 1.1.2.6 _rep = new CQLSelectStatementRep(inQlang,inQuery,inCtx);
|
51 humberto 1.1.2.4 }
52
|
53 chuck 1.1.2.6 CQLSelectStatement::CQLSelectStatement(const CQLSelectStatement& statement)
54 :SelectStatement()
55 {
56 _rep = new CQLSelectStatementRep(*statement._rep);
|
57 humberto 1.1.2.5 }
58
|
59 chuck 1.1.2.6 CQLSelectStatement::~CQLSelectStatement()
60 {
61 if(_rep)
62 delete _rep;
|
63 humberto 1.1.2.2 }
64
|
65 chuck 1.1.2.6 CQLSelectStatement& CQLSelectStatement::operator=(const CQLSelectStatement& rhs)
|
66 humberto 1.1.2.2 {
|
67 chuck 1.1.2.6 if(&rhs != this)
68 {
69 if(_rep) delete _rep;
70 _rep = new CQLSelectStatementRep(*rhs._rep);
71 }
72
73 return *this;
|
74 humberto 1.1.2.2 }
75
|
76 chuck 1.1.2.6 Boolean CQLSelectStatement::evaluate(const CIMInstance& inCI)
|
77 humberto 1.1.2.1 {
|
78 chuck 1.1.2.6 PEGASUS_ASSERT(_rep != NULL);
79
80 return _rep->evaluate(inCI);
|
81 humberto 1.1.2.2 }
82
|
83 chuck 1.1.2.6 void CQLSelectStatement::applyProjection(CIMInstance& inCI) throw(Exception)
|
84 humberto 1.1.2.1 {
|
85 chuck 1.1.2.6 PEGASUS_ASSERT(_rep != NULL);
86
|
87 humberto 1.1.2.4 return _rep->applyProjection(inCI);
|
88 humberto 1.1.2.2 }
89
90 void CQLSelectStatement::validateClass(const CIMObjectPath& inClassName) throw(Exception)
91 {
|
92 chuck 1.1.2.6
93 PEGASUS_ASSERT(_rep != NULL);
94
95 _rep->validateClass(inClassName);
|
96 humberto 1.1.2.2 }
97
98 void CQLSelectStatement::validateProperties() throw(Exception)
99 {
|
100 chuck 1.1.2.6 PEGASUS_ASSERT(_rep != NULL);
101
102 _rep->validateProperties();
|
103 humberto 1.1.2.2 }
104
|
105 chuck 1.1.2.6 Array<CIMObjectPath> CQLSelectStatement::getClassPathList()
|
106 humberto 1.1.2.1 {
|
107 chuck 1.1.2.6 PEGASUS_ASSERT(_rep != NULL);
108
109 return _rep->getClassPathList();
|
110 humberto 1.1.2.2 }
111
112 CIMPropertyList CQLSelectStatement::getPropertyList(const CIMObjectPath& inClassName)
|
113 humberto 1.1.2.1 {
|
114 chuck 1.1.2.6 // Should be set by the concrete sub-classes
115 PEGASUS_ASSERT(_rep != NULL);
116
|
117 humberto 1.1.2.4 return _rep->getPropertyList(inClassName);
|
118 humberto 1.1.2.2 }
119
120 void CQLSelectStatement::appendClassPath(const CQLIdentifier& inIdentifier)
121 {
|
122 chuck 1.1.2.6 PEGASUS_ASSERT(_rep != NULL);
123
124 _rep->appendClassPath(inIdentifier);
|
125 humberto 1.1.2.2 }
126
127 void CQLSelectStatement::setPredicate(CQLPredicate inPredicate)
128 {
|
129 chuck 1.1.2.6 PEGASUS_ASSERT(_rep != NULL);
130
131 _rep->setPredicate(inPredicate);
|
132 humberto 1.1.2.2 }
133
134 void CQLSelectStatement::insertClassPathAlias(const CQLIdentifier& inIdentifier, String inAlias)
135 {
|
136 chuck 1.1.2.6 PEGASUS_ASSERT(_rep != NULL);
137
138 _rep->insertClassPathAlias(inIdentifier,inAlias);
|
139 humberto 1.1.2.2 }
140
141 void CQLSelectStatement::appendSelectIdentifier(const CQLChainedIdentifier& x)
142 {
|
143 chuck 1.1.2.6 PEGASUS_ASSERT(_rep != NULL);
144
145 _rep->appendSelectIdentifier(x);
|
146 humberto 1.1.2.2 }
147
148 Boolean CQLSelectStatement::appendWhereIdentifier(const CQLChainedIdentifier& x)
149 {
|
150 chuck 1.1.2.6 PEGASUS_ASSERT(_rep != NULL);
|
151 humberto 1.1.2.2
|
152 chuck 1.1.2.6 return _rep->appendWhereIdentifier(x);
|
153 humberto 1.1.2.5 }
154
|
155 chuck 1.1.2.7 String CQLSelectStatement::toString(){
156 return _rep->toString();
157 }
158
159 void CQLSelectStatement::setHasWhereClause(){
160 _rep->setHasWhereClause();
161 }
162
163 Boolean CQLSelectStatement::hasWhereClause(){
164 return _rep->hasWhereClause();
165 }
166
167 void CQLSelectStatement::clear(){
168 _rep->clear();
169 if(_rep) delete _rep;
170 _rep = new CQLSelectStatementRep();
171 }
172
|
173 humberto 1.1.2.1 PEGASUS_NAMESPACE_END
|