3 karl 1.2 // 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.;
|
13 schuur 1.1 //
14 // Permission is hereby granted, free of charge, to any person obtaining a copy
15 // 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 // 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 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
22 // 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 // 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 // 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 // Author: Adrian Schuur (schuur@de.ibm.com)
33 //
34 schuur 1.1 // Modified By:
35 //
36 //%/////////////////////////////////////////////////////////////////////////////
37
38 #include "WQLInstancePropertySource.h"
39 #include <Pegasus/Common/CIMName.h>
40 #include <Pegasus/Common/CIMInstance.h>
41
42 PEGASUS_NAMESPACE_BEGIN
43
44 Boolean WQLInstancePropertySource::getValue(
45 const CIMName& propertyName,
46 WQLOperand& value) const
47 {
48 unsigned int pos=ci.findProperty(propertyName);
49 if (pos==PEG_NOT_FOUND) return false;
50
51 CIMValue val=ci.getProperty(pos).getValue();
52 CIMType type=val.getType();
53
54 if (val.isNull()) {
55 schuur 1.1 value=WQLOperand();
56 return true;
57 }
58 if (val.isArray()) return false;
59
60 switch (type) {
61 case CIMTYPE_UINT8:
62 Uint8 propertyValueUint8;
63 val.get(propertyValueUint8);
64 value=WQLOperand(propertyValueUint8,WQL_INTEGER_VALUE_TAG);
65 break;
66
67 case CIMTYPE_UINT16:
68 Uint16 propertyValueUint16;
69 val.get(propertyValueUint16);
70 value=WQLOperand(propertyValueUint16, WQL_INTEGER_VALUE_TAG);
71 break;
72
73 case CIMTYPE_UINT32:
74 Uint32 propertyValueUint32;
75 val.get(propertyValueUint32);
76 schuur 1.1 value=WQLOperand(propertyValueUint32, WQL_INTEGER_VALUE_TAG);
77 break;
78
79 case CIMTYPE_UINT64:
80 Uint64 propertyValueUint64;
81 val.get(propertyValueUint64);
82 value=WQLOperand(propertyValueUint64, WQL_INTEGER_VALUE_TAG);
83 break;
84
85 case CIMTYPE_SINT8:
86 Sint8 propertyValueSint8;
87 val.get(propertyValueSint8);
88 value=WQLOperand(propertyValueSint8, WQL_INTEGER_VALUE_TAG);
89 break;
90
91 case CIMTYPE_SINT16:
92 Sint16 propertyValueSint16;
93 val.get(propertyValueSint16);
94 value=WQLOperand(propertyValueSint16, WQL_INTEGER_VALUE_TAG);
95 break;
96
97 schuur 1.1 case CIMTYPE_SINT32:
98 Sint32 propertyValueSint32;
99 val.get(propertyValueSint32);
100 value=WQLOperand(propertyValueSint32, WQL_INTEGER_VALUE_TAG);
101 break;
102
103 case CIMTYPE_SINT64:
104 Sint64 propertyValueSint64;
105 val.get(propertyValueSint64);
106 value=WQLOperand(propertyValueSint64, WQL_INTEGER_VALUE_TAG);
107 break;
108
109 case CIMTYPE_REAL32:
110 Real32 propertyValueReal32;
111 val.get(propertyValueReal32);
112 value=WQLOperand(propertyValueReal32, WQL_DOUBLE_VALUE_TAG);
113 break;
114
115 case CIMTYPE_REAL64:
116 Real64 propertyValueReal64;
117 val.get(propertyValueReal64);
118 schuur 1.1 value=WQLOperand(propertyValueReal64, WQL_DOUBLE_VALUE_TAG);
119 break;
120
121 case CIMTYPE_BOOLEAN :
122 Boolean booleanValue;
123 val.get(booleanValue);
124 value=WQLOperand(booleanValue, WQL_BOOLEAN_VALUE_TAG);
125 break;
126
127 case CIMTYPE_CHAR16:
128 case CIMTYPE_DATETIME :
129 case CIMTYPE_STRING : {
130 String strValue;
131 val.get(strValue);
132 value=WQLOperand(strValue,WQL_STRING_VALUE_TAG);
133 break;
134 }
135 default: return false;
136 }
137 return true;
138 }
139 schuur 1.1
140 PEGASUS_NAMESPACE_END
|