1 karl 1.41 //%2006////////////////////////////////////////////////////////////////////////
|
2 mike 1.11 //
|
3 karl 1.39 // 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 karl 1.37 // IBM Corp.; EMC Corporation, The Open Group.
|
7 karl 1.39 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
8 // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
|
9 karl 1.40 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
10 // EMC Corporation; VERITAS Software Corporation; The Open Group.
|
11 karl 1.41 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
12 // EMC Corporation; Symantec Corporation; The Open Group.
|
13 mike 1.11 //
14 // Permission is hereby granted, free of charge, to any person obtaining a copy
|
15 kumpf 1.25 // of this software and associated documentation files (the "Software"), to
16 // deal in the Software without restriction, including without limitation the
17 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
18 mike 1.11 // sell copies of the Software, and to permit persons to whom the Software is
19 // furnished to do so, subject to the following conditions:
20 //
|
21 kumpf 1.25 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
|
22 mike 1.11 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
23 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
24 kumpf 1.25 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
25 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
26 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
27 mike 1.11 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 //
30 //==============================================================================
31 //
32 //%/////////////////////////////////////////////////////////////////////////////
33
|
34 kumpf 1.14 #include "CIMInstanceRep.h"
|
35 mike 1.11 #include "CIMInstance.h"
36 #include "DeclContext.h"
37 #include "Indentor.h"
38 #include "CIMName.h"
39 #include "XmlWriter.h"
40
|
41 mike 1.13 PEGASUS_USING_STD;
42
|
43 mike 1.11 PEGASUS_NAMESPACE_BEGIN
44
45 #define PEGASUS_ARRAY_T CIMInstance
46 # include "ArrayImpl.h"
47 #undef PEGASUS_ARRAY_T
48
|
49 mike 1.12 ////////////////////////////////////////////////////////////////////////////////
50 //
51 // CIMInstance
52 //
53 ////////////////////////////////////////////////////////////////////////////////
54
|
55 kumpf 1.14 CIMInstance::CIMInstance()
56 : _rep(0)
57 {
58 }
59
60 CIMInstance::CIMInstance(const CIMInstance& x)
61 {
62 Inc(_rep = x._rep);
63 }
64
|
65 kumpf 1.34 CIMInstance::CIMInstance(const CIMObject& x)
|
66 mike 1.12 {
67 if (!(_rep = dynamic_cast<CIMInstanceRep*>(x._rep)))
|
68 kumpf 1.42 throw DynamicCastFailedException();
|
69 kumpf 1.15 Inc(_rep);
|
70 mike 1.12 }
71
|
72 kumpf 1.28 CIMInstance::CIMInstance(const CIMName& className)
|
73 kumpf 1.14 {
|
74 kumpf 1.42 _rep = new CIMInstanceRep(
75 CIMObjectPath(String::EMPTY, CIMNamespaceName(), className));
|
76 kumpf 1.14 }
77
78 CIMInstance::CIMInstance(CIMInstanceRep* rep)
79 : _rep(rep)
80 {
81 }
82
83 CIMInstance& CIMInstance::operator=(const CIMInstance& x)
84 {
85 if (x._rep != _rep)
86 {
87 Dec(_rep);
88 Inc(_rep = x._rep);
89 }
90 return *this;
91 }
92
93 CIMInstance::~CIMInstance()
94 {
95 Dec(_rep);
96 }
97 kumpf 1.14
|
98 kumpf 1.28 const CIMName& CIMInstance::getClassName() const
|
99 kumpf 1.14 {
|
100 marek 1.44 CheckRep(_rep);
|
101 kumpf 1.14 return _rep->getClassName();
102 }
103
|
104 kumpf 1.22 const CIMObjectPath& CIMInstance::getPath() const
|
105 kumpf 1.14 {
|
106 marek 1.44 CheckRep(_rep);
|
107 kumpf 1.14 return _rep->getPath();
|
108 kumpf 1.24 }
109
110 void CIMInstance::setPath (const CIMObjectPath & path)
111 {
|
112 marek 1.44 CheckRep(_rep);
|
113 kumpf 1.24 _rep->setPath (path);
|
114 kumpf 1.14 }
115
116 CIMInstance& CIMInstance::addQualifier(const CIMQualifier& qualifier)
117 {
|
118 marek 1.44 CheckRep(_rep);
|
119 kumpf 1.14 _rep->addQualifier(qualifier);
120 return *this;
121 }
122
|
123 kumpf 1.28 Uint32 CIMInstance::findQualifier(const CIMName& name) const
|
124 kumpf 1.14 {
|
125 marek 1.44 CheckRep(_rep);
|
126 kumpf 1.14 return _rep->findQualifier(name);
127 }
128
|
129 kumpf 1.33 CIMQualifier CIMInstance::getQualifier(Uint32 index)
|
130 kumpf 1.14 {
|
131 marek 1.44 CheckRep(_rep);
|
132 kumpf 1.33 return _rep->getQualifier(index);
|
133 kumpf 1.14 }
134
|
135 kumpf 1.33 CIMConstQualifier CIMInstance::getQualifier(Uint32 index) const
|
136 kumpf 1.14 {
|
137 marek 1.44 CheckRep(_rep);
|
138 kumpf 1.33 return _rep->getQualifier(index);
|
139 kumpf 1.14 }
140
|
141 kumpf 1.36 void CIMInstance::removeQualifier(Uint32 index)
142 {
|
143 marek 1.44 CheckRep(_rep);
|
144 kumpf 1.36 _rep->removeQualifier(index);
145 }
146
|
147 kumpf 1.14 Uint32 CIMInstance::getQualifierCount() const
148 {
|
149 marek 1.44 CheckRep(_rep);
|
150 kumpf 1.14 return _rep->getQualifierCount();
151 }
152
153 CIMInstance& CIMInstance::addProperty(const CIMProperty& x)
154 {
|
155 marek 1.44 CheckRep(_rep);
|
156 kumpf 1.14 _rep->addProperty(x);
157 return *this;
158 }
159
|
160 kumpf 1.28 Uint32 CIMInstance::findProperty(const CIMName& name) const
|
161 kumpf 1.14 {
|
162 marek 1.44 CheckRep(_rep);
|
163 kumpf 1.14 return _rep->findProperty(name);
164 }
165
|
166 kumpf 1.34 CIMProperty CIMInstance::getProperty(Uint32 index)
|
167 kumpf 1.14 {
|
168 marek 1.44 CheckRep(_rep);
|
169 kumpf 1.33 return _rep->getProperty(index);
|
170 kumpf 1.14 }
171
|
172 kumpf 1.34 CIMConstProperty CIMInstance::getProperty(Uint32 index) const
|
173 kumpf 1.14 {
|
174 marek 1.44 CheckRep(_rep);
|
175 kumpf 1.33 return _rep->getProperty(index);
|
176 kumpf 1.14 }
177
|
178 kumpf 1.34 void CIMInstance::removeProperty(Uint32 index)
|
179 kumpf 1.14 {
|
180 marek 1.44 CheckRep(_rep);
|
181 kumpf 1.33 _rep->removeProperty(index);
|
182 kumpf 1.14 }
183
184 Uint32 CIMInstance::getPropertyCount() const
185 {
|
186 marek 1.44 CheckRep(_rep);
|
187 kumpf 1.14 return _rep->getPropertyCount();
188 }
189
|
190 kumpf 1.29 Boolean CIMInstance::isUninitialized() const
|
191 kumpf 1.14 {
|
192 kumpf 1.43 return _rep == 0;
|
193 kumpf 1.14 }
194
|
195 mike 1.11 Boolean CIMInstance::identical(const CIMConstInstance& x) const
196 {
|
197 marek 1.44 CheckRep(x._rep);
198 CheckRep(_rep);
|
199 mike 1.11 return _rep->identical(x._rep);
200 }
201
|
202 kumpf 1.14 CIMInstance CIMInstance::clone() const
203 {
204 return CIMInstance((CIMInstanceRep*)(_rep->clone()));
205 }
206
|
207 kumpf 1.30 CIMObjectPath CIMInstance::buildPath(const CIMConstClass& cimClass) const
|
208 kumpf 1.14 {
|
209 marek 1.44 CheckRep(_rep);
|
210 kumpf 1.30 return _rep->buildPath(cimClass);
|
211 kumpf 1.14 }
212
213 void CIMInstance::_checkRep() const
214 {
215 if (!_rep)
|
216 kumpf 1.32 throw UninitializedObjectException();
|
217 kumpf 1.14 }
218
|
219 karl 1.38
220 void CIMInstance::filter(Boolean includeQualifiers, Boolean includeClassOrigin,
221 const CIMPropertyList& propertyList)
222 {
|
223 marek 1.44 CheckRep(_rep);
|
224 karl 1.38 _rep->filter(includeQualifiers, includeClassOrigin, propertyList);
225 }
226
|
227 mike 1.12 ////////////////////////////////////////////////////////////////////////////////
228 //
229 // CIMConstInstance
230 //
231 ////////////////////////////////////////////////////////////////////////////////
232
|
233 kumpf 1.14 CIMConstInstance::CIMConstInstance()
234 : _rep(0)
235 {
236 }
237
238 CIMConstInstance::CIMConstInstance(const CIMConstInstance& x)
239 {
240 Inc(_rep = x._rep);
241 }
242
243 CIMConstInstance::CIMConstInstance(const CIMInstance& x)
244 {
245 Inc(_rep = x._rep);
246 }
247
|
248 kumpf 1.34 CIMConstInstance::CIMConstInstance(const CIMObject& x)
|
249 mike 1.12 {
250 if (!(_rep = dynamic_cast<CIMInstanceRep*>(x._rep)))
|
251 kumpf 1.42 throw DynamicCastFailedException();
|
252 kumpf 1.15 Inc(_rep);
|
253 mike 1.12 }
254
255 CIMConstInstance::CIMConstInstance(const CIMConstObject& x)
256 {
257 if (!(_rep = dynamic_cast<CIMInstanceRep*>(x._rep)))
|
258 kumpf 1.42 throw DynamicCastFailedException();
|
259 kumpf 1.15 Inc(_rep);
|
260 kumpf 1.14 }
261
|
262 kumpf 1.28 CIMConstInstance::CIMConstInstance(const CIMName& className)
|
263 kumpf 1.14 {
|
264 kumpf 1.42 _rep = new CIMInstanceRep(
265 CIMObjectPath(String::EMPTY, CIMNamespaceName(), className));
|
266 kumpf 1.14 }
267
268 CIMConstInstance& CIMConstInstance::operator=(const CIMConstInstance& x)
269 {
270 if (x._rep != _rep)
271 {
272 Dec(_rep);
273 Inc(_rep = x._rep);
274 }
275 return *this;
276 }
277
278 CIMConstInstance& CIMConstInstance::operator=(const CIMInstance& x)
279 {
280 if (x._rep != _rep)
281 {
282 Dec(_rep);
283 Inc(_rep = x._rep);
284 }
285 return *this;
286 }
287 kumpf 1.14
288 CIMConstInstance::~CIMConstInstance()
289 {
290 Dec(_rep);
291 }
292
|
293 kumpf 1.28 const CIMName& CIMConstInstance::getClassName() const
|
294 kumpf 1.14 {
|
295 marek 1.44 CheckRep(_rep);
|
296 kumpf 1.14 return _rep->getClassName();
297 }
298
|
299 kumpf 1.22 const CIMObjectPath& CIMConstInstance::getPath() const
|
300 kumpf 1.14 {
|
301 marek 1.44 CheckRep(_rep);
|
302 kumpf 1.14 return _rep->getPath();
303 }
304
|
305 kumpf 1.28 Uint32 CIMConstInstance::findQualifier(const CIMName& name) const
|
306 kumpf 1.14 {
|
307 marek 1.44 CheckRep(_rep);
|
308 kumpf 1.14 return _rep->findQualifier(name);
309 }
310
|
311 kumpf 1.33 CIMConstQualifier CIMConstInstance::getQualifier(Uint32 index) const
|
312 kumpf 1.14 {
|
313 marek 1.44 CheckRep(_rep);
|
314 kumpf 1.33 return _rep->getQualifier(index);
|
315 kumpf 1.14 }
316
317 Uint32 CIMConstInstance::getQualifierCount() const
318 {
|
319 marek 1.44 CheckRep(_rep);
|
320 kumpf 1.14 return _rep->getQualifierCount();
321 }
322
|
323 kumpf 1.28 Uint32 CIMConstInstance::findProperty(const CIMName& name) const
|
324 kumpf 1.14 {
|
325 marek 1.44 CheckRep(_rep);
|
326 kumpf 1.14 return _rep->findProperty(name);
327 }
328
|
329 kumpf 1.33 CIMConstProperty CIMConstInstance::getProperty(Uint32 index) const
|
330 kumpf 1.14 {
|
331 marek 1.44 CheckRep(_rep);
|
332 kumpf 1.33 return _rep->getProperty(index);
|
333 kumpf 1.14 }
334
335 Uint32 CIMConstInstance::getPropertyCount() const
336 {
|
337 marek 1.44 CheckRep(_rep);
|
338 kumpf 1.14 return _rep->getPropertyCount();
339 }
340
|
341 kumpf 1.29 Boolean CIMConstInstance::isUninitialized() const
|
342 kumpf 1.14 {
|
343 kumpf 1.43 return _rep == 0;
|
344 kumpf 1.14 }
345
346 Boolean CIMConstInstance::identical(const CIMConstInstance& x) const
347 {
|
348 marek 1.44 CheckRep(x._rep);
349 CheckRep(_rep);
|
350 kumpf 1.14 return _rep->identical(x._rep);
351 }
352
353 CIMInstance CIMConstInstance::clone() const
354 {
355 return CIMInstance((CIMInstanceRep*)(_rep->clone()));
356 }
357
|
358 kumpf 1.30 CIMObjectPath CIMConstInstance::buildPath(const CIMConstClass& cimClass) const
|
359 kumpf 1.14 {
|
360 marek 1.44 CheckRep(_rep);
|
361 kumpf 1.30 return _rep->buildPath(cimClass);
|
362 kumpf 1.14 }
363
364 void CIMConstInstance::_checkRep() const
365 {
366 if (!_rep)
|
367 kumpf 1.32 throw UninitializedObjectException();
|
368 mike 1.11 }
369
370 PEGASUS_NAMESPACE_END
|