1 karl 1.57 //%2006////////////////////////////////////////////////////////////////////////
|
2 mike 1.18 //
|
3 karl 1.52 // 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.47 // IBM Corp.; EMC Corporation, The Open Group.
|
7 karl 1.52 // 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.54 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
10 // EMC Corporation; VERITAS Software Corporation; The Open Group.
|
11 karl 1.57 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
12 // EMC Corporation; Symantec Corporation; The Open Group.
|
13 kumpf 1.34 //
|
14 mike 1.18 // Permission is hereby granted, free of charge, to any person obtaining a copy
|
15 kumpf 1.34 // 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.18 // 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.34 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
|
22 mike 1.18 // 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.34 // 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.18 // 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 #ifndef Pegasus_Property_h
35 #define Pegasus_Property_h
36
37 #include <Pegasus/Common/Config.h>
|
38 kumpf 1.39 #include <Pegasus/Common/Linkage.h>
39 #include <Pegasus/Common/CIMName.h>
|
40 kumpf 1.27 #include <Pegasus/Common/CIMValue.h>
|
41 kumpf 1.25 #include <Pegasus/Common/CIMQualifier.h>
|
42 mike 1.18
43 PEGASUS_NAMESPACE_BEGIN
44
45 ////////////////////////////////////////////////////////////////////////////////
46 //
47 // CIMProperty
48 //
49 ////////////////////////////////////////////////////////////////////////////////
50
51 class CIMConstProperty;
|
52 kumpf 1.27 class CIMPropertyRep;
|
53 kumpf 1.25 class CIMClassRep;
|
54 mike 1.18 class CIMInstanceRep;
|
55 dave.sudlik 1.53 class CIMQualifier;
56 class CIMConstQualifier;
|
57 kumpf 1.37 class Resolver;
|
58 mike 1.18
|
59 kumpf 1.58 /**
60 The CIMProperty class represents the DMTF standard CIM property definition.
61 A CIMProperty is generally defined in the context of a CIMClass or
62 CIMInstance.
63 A CIMProperty consists of:
|
64 karl 1.49 <ul>
|
65 kumpf 1.58 <li>A CIMName containing the name of the property
66 <li>A CIMType defining the property type
67 <li>A Boolean indicating whether it is an Array property
68 <li>A Uint32 indicating the size of the Array, if the property is an
69 Array property
70 <li>A CIMName containing the reference class name for this property,
71 if the property is of reference type
72 <li>A CIMValue specifying the property value
73 <li>Zero or more CIMQualifier objects
|
74 karl 1.49 </ul>
|
75 kumpf 1.58 In addition, a CIMProperty has these internal attributes:
|
76 karl 1.49 <ul>
|
77 kumpf 1.58 <li><b>propagated</b> - An attribute defining whether this CIMProperty
78 is propagated from a superclass. Note that this is normally set
79 as part of completing the definition of objects (resolving) when
80 they are created as part of a CIM schema and is NOT automatically
81 set when creating a property object. It can only be logically set
82 in context of the schema in which the CIMProperty is defined.
83 <li><b>classOrigin</b> - An attribute defining the class in which
84 this CIMProperty was originally defined. This is normally set
85 within the context of the schema in which the CIMProperty is
86 defined. This attribute is available from objects retrieved
87 from the CIM Server, for example, and provides information on
88 the defintion of this property in the class hierarchy. The
89 propagated and ClassOrigin attributes can be used together to
90 determine if properties originated with this object or were
91 inherited from higher levels of the hiearchy.
|
92 karl 1.49 </ul>
|
93 kumpf 1.58
94 <p>The CIMProperty class uses a shared representation model, such that
95 multiple CIMProperty objects may refer to the same data copy. Assignment
96 and copy operators create new references to the same data, not distinct
97 copies. An update to a CIMProperty object affects all the CIMProperty
98 objects that refer to the same data copy. The data remains valid until
99 all the CIMProperty objects that refer to it are destructed. A separate
100 copy of the data may be created using the clone method.
|
101 mike 1.18 */
|
102 kumpf 1.25 class PEGASUS_COMMON_LINKAGE CIMProperty
|
103 mike 1.18 {
104 public:
105
|
106 kumpf 1.58 /**
107 Constructs an uninitialized CIMProperty object. A method
108 invocation on an uninitialized object will result in the throwing
109 of an UninitializedObjectException. An uninitialized object may
110 be converted into an initialized object only by using the assignment
111 operator with an initialized object.
|
112 karl 1.48 */
|
113 kumpf 1.25 CIMProperty();
|
114 mike 1.18
|
115 kumpf 1.58 /**
116 Constructs a CIMProperty object from the value of a specified
117 CIMProperty object, so that both objects refer to the same data copy.
118 @param x The CIMProperty object from which to construct a new
119 CIMProperty object.
|
120 kumpf 1.46 */
|
121 kumpf 1.25 CIMProperty(const CIMProperty& x);
|
122 mike 1.18
|
123 kumpf 1.58 /**
124 Constructs a CIMProperty object with the specified attributes.
125 @param name A CIMName specifying the name of the property.
126 @param value A CIMValue specifying the property value, and implicitly
127 defining the property type and whether the property is an Array
128 property.
129 @param arraySize A Uint32 indicating the size of the Array, if the
130 property is an Array property. The default value of zero
131 indicates a variable size array.
132 @param referenceClassName A CIMName containing the reference class
133 name for this property, if the property is of reference type.
134 @param classOrigin A CIMName indicating the class in which the
135 property is locally defined (optional).
136 @param propagated A Boolean indicating whether the property is local
137 to the class or instance in which it appears or was propagated
138 (without modification) from other schema.
139 @exception TypeMismatchException If the property is of reference
140 type and referenceClassName is null or if the property is not of
141 reference type and referenceClassName is not null.
142 @exception TypeMismatchException If the property is an Array property
143 and arraySize is not zero.
144 kumpf 1.58 @exception UninitializedObjectException If the property name is null.
|
145 mike 1.18 */
146 CIMProperty(
|
147 kumpf 1.46 const CIMName& name,
148 const CIMValue& value,
149 Uint32 arraySize = 0,
150 const CIMName& referenceClassName = CIMName(),
151 const CIMName& classOrigin = CIMName(),
152 Boolean propagated = false);
|
153 mike 1.18
|
154 kumpf 1.58 /**
155 Destructs the CIMProperty object.
|
156 karl 1.48 */
|
157 kumpf 1.25 ~CIMProperty();
|
158 mike 1.18
|
159 kumpf 1.58 /**
160 Assigns the value of the specified CIMProperty object to this object,
161 so that both objects refer to the same data copy.
162 @param x The CIMProperty object from which to assign this CIMProperty
163 object.
164 @return A reference to this CIMProperty object.
|
165 karl 1.48 */
|
166 kumpf 1.25 CIMProperty& operator=(const CIMProperty& x);
|
167 mike 1.18
|
168 kumpf 1.58 /**
169 Gets the name of the property.
170 @return A CIMName containing the name of the property.
171 @exception UninitializedObjectException If the object is not
172 initialized.
|
173 mike 1.18 */
|
174 kumpf 1.39 const CIMName& getName() const;
|
175 mike 1.18
|
176 kumpf 1.58 /**
177 Sets the property name.
178 @param name A CIMName containing the new name of the property.
179 @exception UninitializedObjectException If the object is not
180 initialized.
|
181 mike 1.18 */
|
182 kumpf 1.39 void setName(const CIMName& name);
|
183 mike 1.18
|
184 kumpf 1.58 /**
185 Gets the property value.
186 @return A CIMValue containing the property value.
187 @exception UninitializedObjectException If the object is not
188 initialized.
|
189 karl 1.48 */
|
190 kumpf 1.25 const CIMValue& getValue() const;
|
191 mike 1.18
|
192 kumpf 1.58 /**
193 Gets the property type.
194 @return A CIMType containing the property type.
195 @exception UninitializedObjectException If the object is not
196 initialized.
|
197 karl 1.48 */
|
198 kumpf 1.25 CIMType getType() const;
|
199 mike 1.18
|
200 kumpf 1.58 /**
201 Checks whether the property is an Array property.
202 @return True if the property is an Array property, false otherwise.
203 @exception UninitializedObjectException If the object is not
204 initialized.
|
205 karl 1.48 */
|
206 kumpf 1.25 Boolean isArray() const;
|
207 kumpf 1.21
|
208 kumpf 1.58 /**
209 Sets the property value.
210 @param name A CIMValue containing the new value of the property.
211 @exception UninitializedObjectException If the object is not
212 initialized.
|
213 mike 1.18 */
|
214 kumpf 1.25 void setValue(const CIMValue& value);
|
215 mike 1.18
|
216 kumpf 1.58 /**
217 Gets the array size for the property.
218 @return Uint32 array size.
219 @exception UninitializedObjectException If the object is not
220 initialized.
|
221 kumpf 1.46 */
|
222 kumpf 1.25 Uint32 getArraySize() const;
|
223 mike 1.18
|
224 kumpf 1.58 /**
225 Gets the reference class name for the property.
226 @return A CIMName containing the reference class name for the
227 property if the property is of reference type, a null CIMName
228 otherwise.
229 @exception UninitializedObjectException If the object is not
230 initialized.
|
231 mike 1.18 */
|
232 kumpf 1.39 const CIMName& getReferenceClassName() const;
|
233 mike 1.18
|
234 kumpf 1.58 /**
235 Gets the class in which this property is locally defined. This
236 information is normally available with properties that are part of
237 schema returned from a CIM Server.
238 @return CIMName containing the classOrigin attribute.
239 @exception UninitializedObjectException If the object is not
240 initialized.
|
241 kumpf 1.46 */
|
242 kumpf 1.39 const CIMName& getClassOrigin() const;
|
243 mike 1.18
|
244 kumpf 1.58 /**
245 Sets the classOrigin attribute with the specified class name.
246 Normally this method is used internally by a CIM Server when
247 defining properties in the context of a schema.
248 @param classOrigin A CIMName specifying the name of the class of
249 origin for the property.
250 @exception UninitializedObjectException If the object is not
251 initialized.
|
252 mike 1.18 */
|
253 kumpf 1.39 void setClassOrigin(const CIMName& classOrigin);
|
254 mike 1.18
|
255 kumpf 1.58 /**
256 Tests the propagated attribute of the property. The propagated
257 attribute indicates whether this property was propagated from a
258 higher-level class. Normally this attribute is set as part of
259 defining a property in the context of a schema. It is set in
260 properties retrieved from a CIM Server.
261 @return True if property is propagated; otherwise, false.
262 @exception UninitializedObjectException If the object is not
263 initialized.
|
264 mike 1.19 */
|
265 kumpf 1.25 Boolean getPropagated() const;
|
266 mike 1.18
|
267 kumpf 1.58 /**
268 Sets the propagated attribute. Normally this is used by a CIM Server
269 when defining a property in the context of a schema.
270 @param propagated A Boolean indicating whether the property is
271 propagated.
272 @exception UninitializedObjectException If the object is not
273 initialized.
|
274 kumpf 1.46 */
|
275 kumpf 1.25 void setPropagated(Boolean propagated);
|
276 mike 1.18
|
277 kumpf 1.58 /**
278 Adds a qualifier to the property.
279 @param x The CIMQualifier to be added.
280 @return A reference to this CIMProperty object.
281 @exception AlreadyExistsException If a qualifier with the
282 same name already exists in the CIMProperty.
283 @exception UninitializedObjectException If the object is not
284 initialized.
|
285 mike 1.18 */
|
286 kumpf 1.25 CIMProperty& addQualifier(const CIMQualifier& x);
|
287 mike 1.18
|
288 kumpf 1.58 /**
289 Finds a qualifier by name.
290 @param name A CIMName specifying the name of the qualifier to be found.
291 @return Index of the qualifier if found or PEG_NOT_FOUND if not found.
292 @exception UninitializedObjectException If the object is not
293 initialized.
|
294 mike 1.18 */
|
295 kumpf 1.39 Uint32 findQualifier(const CIMName& name) const;
|
296 mike 1.18
|
297 kumpf 1.58 /**
298 Gets the qualifier at the specified index.
299 @param index The index of the qualifier to be retrieved.
300 @return The CIMQualifier object at the specified index.
301 @exception IndexOutOfBoundsException If the index is
302 outside the range of qualifiers available for the CIMProperty.
303 @exception UninitializedObjectException If the object is not
304 initialized.
|
305 mike 1.18 */
|
306 kumpf 1.44 CIMQualifier getQualifier(Uint32 index);
|
307 mike 1.18
|
308 kumpf 1.58 /**
309 Gets the qualifier at the specified index.
310 @param index The index of the qualifier to be retrieved.
311 @return The CIMConstQualifier object at the specified index.
312 @exception IndexOutOfBoundsException If the index is
313 outside the range of qualifiers available for the CIMProperty.
314 @exception UninitializedObjectException If the object is not
315 initialized.
|
316 karl 1.24 */
|
317 kumpf 1.44 CIMConstQualifier getQualifier(Uint32 index) const;
|
318 mike 1.18
|
319 kumpf 1.58 /**
320 Removes a qualifier from the property.
321 @param index The index of the qualifier to remove.
322 @exception IndexOutOfBoundsException If the index is
323 outside the range of qualifiers available for the CIMProperty.
324 @exception UninitializedObjectException If the object is not
325 initialized.
|
326 mike 1.18 */
|
327 kumpf 1.44 void removeQualifier(Uint32 index);
|
328 kumpf 1.58
329 /**
330 Gets the number of qualifiers in the property.
331 @return An integer count of the qualifiers in the CIMProperty.
332 @exception UninitializedObjectException If the object is not
333 initialized.
|
334 mike 1.18 */
|
335 kumpf 1.25 Uint32 getQualifierCount() const;
336
|
337 kumpf 1.58 /**
338 Compares the property with another property.
339 @param x The CIMConstProperty to be compared.
340 @return True if this property is identical to the one specified,
341 false otherwise.
342 @exception UninitializedObjectException If either of the objects
343 is not initialized.
|
344 kumpf 1.25 */
345 Boolean identical(const CIMConstProperty& x) const;
346
|
347 kumpf 1.58 /**
348 Makes a deep copy of the property. This creates a new copy
349 of all the property attributes including qualifiers.
350 @return A new copy of the CIMProperty object.
351 @exception UninitializedObjectException If the object is not
352 initialized.
|
353 kumpf 1.46 */
|
354 kumpf 1.42 CIMProperty clone() const;
|
355 kumpf 1.25
|
356 kumpf 1.58 /**
357 Determines whether the object has been initialized.
358 @return True if the object has not been initialized, false otherwise.
|
359 kumpf 1.46 */
|
360 kumpf 1.41 Boolean isUninitialized() const;
|
361 mike 1.18
362 private:
363
|
364 kumpf 1.25 CIMProperty(CIMPropertyRep* rep);
|
365 mike 1.18
|
366 kumpf 1.25 void _checkRep() const;
|
367 mike 1.18
368 friend class CIMConstProperty;
369 friend class CIMClassRep;
370 friend class CIMInstanceRep;
|
371 kumpf 1.37 friend class Resolver;
|
372 kumpf 1.30 friend class XmlWriter;
|
373 kumpf 1.31 friend class MofWriter;
|
374 schuur 1.50 friend class BinaryStreamer;
|
375 kumpf 1.26
376 CIMPropertyRep* _rep;
|
377 mike 1.18 };
378
|
379 kumpf 1.58
|
380 mike 1.18 ////////////////////////////////////////////////////////////////////////////////
381 //
382 // CIMConstProperty
383 //
384 ////////////////////////////////////////////////////////////////////////////////
385
|
386 kumpf 1.58 /**
387 The CIMConstProperty class provides a const interface to a CIMProperty
388 object. This class is needed because the shared representation model
389 used by CIMProperty does not prevent modification to a const CIMProperty
390 object. Note that the value of a CIMConstProperty object could still be
391 modified by a CIMProperty object that refers to the same data copy.
392 */
|
393 mike 1.18 class PEGASUS_COMMON_LINKAGE CIMConstProperty
394 {
395 public:
396
|
397 kumpf 1.58 /**
398 Constructs an uninitialized CIMConstProperty object. A method
399 invocation on an uninitialized object will result in the throwing
400 of an UninitializedObjectException. An uninitialized object may
401 be converted into an initialized object only by using the assignment
402 operator with an initialized object.
|
403 karl 1.48 */
|
404 kumpf 1.25 CIMConstProperty();
|
405 mike 1.18
|
406 kumpf 1.58 /**
407 Constructs a CIMConstProperty object from the value of a specified
408 CIMConstProperty object, so that both objects refer to the same data
409 copy.
410 @param x The CIMConstProperty object from which to construct a new
411 CIMConstProperty object.
|
412 karl 1.48 */
|
413 kumpf 1.25 CIMConstProperty(const CIMConstProperty& x);
|
414 mike 1.18
|
415 kumpf 1.58 /**
416 Constructs a CIMConstProperty object from the value of a specified
417 CIMProperty object, so that both objects refer to the same data copy.
418 @param x The CIMProperty object from which to construct a new
419 CIMConstProperty object.
|
420 karl 1.48 */
|
421 kumpf 1.25 CIMConstProperty(const CIMProperty& x);
|
422 mike 1.18
|
423 kumpf 1.58 /**
424 Constructs a CIMConstProperty object with the specified attributes.
425 @param name A CIMName specifying the name of the property.
426 @param value A CIMValue specifying the property value, and implicitly
427 defining the property type and whether the property is an Array
428 property.
429 @param arraySize A Uint32 indicating the size of the Array, if the
430 property is an Array property. The default value of zero
431 indicates a variable size array.
432 @param referenceClassName A CIMName containing the reference class
433 name for this property, if the property is of reference type.
434 @param classOrigin A CIMName indicating the class in which the
435 property is locally defined (optional).
436 @param propagated A Boolean indicating whether the property is local
437 to the class or instance in which it appears or was propagated
438 (without modification) from other schema.
439 @exception TypeMismatchException If the property is of reference
440 type and referenceClassName is null or if the property is not of
441 reference type and referenceClassName is not null.
442 @exception TypeMismatchException If the property is an Array property
443 and arraySize is not zero.
444 kumpf 1.58 @exception UninitializedObjectException If the property name is null.
|
445 karl 1.48 */
|
446 mike 1.18 CIMConstProperty(
|
447 kumpf 1.46 const CIMName& name,
448 const CIMValue& value,
449 Uint32 arraySize = 0,
450 const CIMName& referenceClassName = CIMName(),
451 const CIMName& classOrigin = CIMName(),
452 Boolean propagated = false);
|
453 kumpf 1.25
|
454 kumpf 1.58 /**
455 Destructs the CIMConstProperty object.
|
456 karl 1.48 */
|
457 kumpf 1.25 ~CIMConstProperty();
458
|
459 kumpf 1.58 /**
460 Assigns the value of the specified CIMConstProperty object to this
461 object, so that both objects refer to the same data copy.
462 @param x The CIMConstProperty object from which to assign this
463 CIMConstProperty object.
464 @return A reference to this CIMConstProperty object.
|
465 karl 1.48 */
|
466 kumpf 1.25 CIMConstProperty& operator=(const CIMConstProperty& x);
467
|
468 kumpf 1.58 /**
469 Assigns the value of the specified CIMProperty object to this
470 object, so that both objects refer to the same data copy.
471 @param x The CIMProperty object from which to assign this
472 CIMConstProperty object.
473 @return A reference to this CIMConstProperty object.
|
474 karl 1.48 */
|
475 kumpf 1.25 CIMConstProperty& operator=(const CIMProperty& x);
476
|
477 kumpf 1.58 /**
478 Gets the name of the property.
479 @return A CIMName containing the name of the property.
480 @exception UninitializedObjectException If the object is not
481 initialized.
|
482 karl 1.48 */
|
483 kumpf 1.39 const CIMName& getName() const;
|
484 kumpf 1.25
|
485 kumpf 1.58 /**
486 Gets the property value.
487 @return A CIMValue containing the property value.
488 @exception UninitializedObjectException If the object is not
489 initialized.
|
490 karl 1.48 */
|
491 kumpf 1.25 const CIMValue& getValue() const;
492
|
493 kumpf 1.58 /**
494 Gets the property type.
495 @return A CIMType containing the property type.
496 @exception UninitializedObjectException If the object is not
497 initialized.
|
498 karl 1.48 */
|
499 kumpf 1.25 CIMType getType() const;
500
|
501 kumpf 1.58 /**
502 Checks whether the property is an Array property.
503 @return True if the property is an Array property, false otherwise.
504 @exception UninitializedObjectException If the object is not
505 initialized.
|
506 karl 1.48 */
|
507 kumpf 1.25 Boolean isArray() const;
508
|
509 kumpf 1.58 /**
510 Gets the array size for the property.
511 @return Uint32 array size.
512 @exception UninitializedObjectException If the object is not
513 initialized.
|
514 karl 1.48 */
|
515 kumpf 1.25 Uint32 getArraySize() const;
516
|
517 kumpf 1.58 /**
518 Gets the reference class name for the property.
519 @return A CIMName containing the reference class name for the
520 property if the property is of reference type, a null CIMName
521 otherwise.
522 @exception UninitializedObjectException If the object is not
523 initialized.
|
524 karl 1.48 */
|
525 kumpf 1.39 const CIMName& getReferenceClassName() const;
|
526 kumpf 1.25
|
527 kumpf 1.58 /**
528 Gets the class in which this property is locally defined. This
529 information is normally available with properties that are part of
530 schema returned from a CIM Server.
531 @return CIMName containing the classOrigin attribute.
532 @exception UninitializedObjectException If the object is not
533 initialized.
|
534 karl 1.48 */
|
535 kumpf 1.39 const CIMName& getClassOrigin() const;
|
536 kumpf 1.25
|
537 kumpf 1.58 /**
538 Tests the propagated attribute of the object. The propagated
539 attribute indicates whether this property was propagated from a
540 higher-level class. Normally this attribute is set as part of
541 defining a property in the context of a schema. It is set in
542 properties retrieved from a CIM Server.
543 @return True if property is propagated; otherwise, false.
544 @exception UninitializedObjectException If the object is not
545 initialized.
|
546 karl 1.48 */
|
547 kumpf 1.25 Boolean getPropagated() const;
548
|
549 kumpf 1.58 /**
550 Finds a qualifier by name.
551 @param name A CIMName specifying the name of the qualifier to be found.
552 @return Index of the qualifier if found or PEG_NOT_FOUND if not found.
553 @exception UninitializedObjectException If the object is not
554 initialized.
|
555 karl 1.48 */
|
556 kumpf 1.39 Uint32 findQualifier(const CIMName& name) const;
|
557 kumpf 1.25
|
558 kumpf 1.58 /**
559 Gets the qualifier at the specified index.
560 @param index The index of the qualifier to be retrieved.
561 @return The CIMConstQualifier object at the specified index.
562 @exception IndexOutOfBoundsException If the index is outside
563 the range of qualifiers available for the CIMConstProperty.
564 @exception UninitializedObjectException If the object is not
565 initialized.
|
566 karl 1.48 */
|
567 kumpf 1.44 CIMConstQualifier getQualifier(Uint32 index) const;
|
568 kumpf 1.25
|
569 kumpf 1.58 /**
570 Gets the number of qualifiers in the property.
571 @return An integer count of the qualifiers in the CIMConstProperty.
572 @exception UninitializedObjectException If the object is not
573 initialized.
|
574 karl 1.48 */
|
575 kumpf 1.25 Uint32 getQualifierCount() const;
576
|
577 kumpf 1.58 /**
578 Compares the property with another property.
579 @param x The CIMConstProperty to be compared.
580 @return True if this property is identical to the one specified,
581 false otherwise.
582 @exception UninitializedObjectException If either of the objects
583 is not initialized.
|
584 karl 1.48 */
|
585 kumpf 1.25 Boolean identical(const CIMConstProperty& x) const;
586
|
587 kumpf 1.58 /**
588 Makes a deep copy of the property. This creates a new copy
589 of all the property attributes including qualifiers.
590 @return A CIMProperty object with a separate copy of the
591 CIMConstProperty object.
592 @exception UninitializedObjectException If the object is not
593 initialized.
|
594 karl 1.48 */
|
595 kumpf 1.42 CIMProperty clone() const;
|
596 kumpf 1.25
|
597 kumpf 1.58 /**
598 Determines whether the object has been initialized.
599 @return True if the object has not been initialized, false otherwise.
600 */
|
601 kumpf 1.41 Boolean isUninitialized() const;
|
602 mike 1.18
603 private:
604
|
605 kumpf 1.25 void _checkRep() const;
|
606 mike 1.18
607 CIMPropertyRep* _rep;
608
609 friend class CIMProperty;
610 friend class CIMPropertyRep;
|
611 kumpf 1.30 friend class XmlWriter;
|
612 kumpf 1.31 friend class MofWriter;
|
613 mike 1.18 };
614
615 #define PEGASUS_ARRAY_T CIMProperty
|
616 kumpf 1.33 # include <Pegasus/Common/ArrayInter.h>
|
617 mike 1.18 #undef PEGASUS_ARRAY_T
618
619 PEGASUS_NAMESPACE_END
620
621 #endif /* Pegasus_Property_h */
|