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.;
|
11 schuur 1.1 //
12 // Permission is hereby granted, free of charge, to any person obtaining a copy
13 // of this software and associated documentation files (the "Software"), to
14 // deal in the Software without restriction, including without limitation the
15 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
16 // sell copies of the Software, and to permit persons to whom the Software is
17 // furnished to do so, subject to the following conditions:
18 //
19 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
20 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
21 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
22 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
23 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
24 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
25 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 //
28 //==============================================================================
29 //
30 // Author: Adrian Schuur (schuur@de.ibm.com)
31 //
32 schuur 1.1 // Modified By:
33 //
34 //%/////////////////////////////////////////////////////////////////////////////
35
36 #include "WQLInstancePropertySource.h"
37 #include <Pegasus/Common/CIMName.h>
38 #include <Pegasus/Common/CIMInstance.h>
39
40 PEGASUS_NAMESPACE_BEGIN
41
42 Boolean WQLInstancePropertySource::getValue(
43 const CIMName& propertyName,
44 WQLOperand& value) const
45 {
46 unsigned int pos=ci.findProperty(propertyName);
47 if (pos==PEG_NOT_FOUND) return false;
48
49 CIMValue val=ci.getProperty(pos).getValue();
50 CIMType type=val.getType();
51
52 if (val.isNull()) {
53 schuur 1.1 value=WQLOperand();
54 return true;
55 }
56 if (val.isArray()) return false;
57
58 switch (type) {
59 case CIMTYPE_UINT8:
60 Uint8 propertyValueUint8;
61 val.get(propertyValueUint8);
62 value=WQLOperand(propertyValueUint8,WQL_INTEGER_VALUE_TAG);
63 break;
64
65 case CIMTYPE_UINT16:
66 Uint16 propertyValueUint16;
67 val.get(propertyValueUint16);
68 value=WQLOperand(propertyValueUint16, WQL_INTEGER_VALUE_TAG);
69 break;
70
71 case CIMTYPE_UINT32:
72 Uint32 propertyValueUint32;
73 val.get(propertyValueUint32);
74 schuur 1.1 value=WQLOperand(propertyValueUint32, WQL_INTEGER_VALUE_TAG);
75 break;
76
77 case CIMTYPE_UINT64:
78 Uint64 propertyValueUint64;
79 val.get(propertyValueUint64);
80 value=WQLOperand(propertyValueUint64, WQL_INTEGER_VALUE_TAG);
81 break;
82
83 case CIMTYPE_SINT8:
84 Sint8 propertyValueSint8;
85 val.get(propertyValueSint8);
86 value=WQLOperand(propertyValueSint8, WQL_INTEGER_VALUE_TAG);
87 break;
88
89 case CIMTYPE_SINT16:
90 Sint16 propertyValueSint16;
91 val.get(propertyValueSint16);
92 value=WQLOperand(propertyValueSint16, WQL_INTEGER_VALUE_TAG);
93 break;
94
95 schuur 1.1 case CIMTYPE_SINT32:
96 Sint32 propertyValueSint32;
97 val.get(propertyValueSint32);
98 value=WQLOperand(propertyValueSint32, WQL_INTEGER_VALUE_TAG);
99 break;
100
101 case CIMTYPE_SINT64:
102 Sint64 propertyValueSint64;
103 val.get(propertyValueSint64);
104 value=WQLOperand(propertyValueSint64, WQL_INTEGER_VALUE_TAG);
105 break;
106
107 case CIMTYPE_REAL32:
108 Real32 propertyValueReal32;
109 val.get(propertyValueReal32);
110 value=WQLOperand(propertyValueReal32, WQL_DOUBLE_VALUE_TAG);
111 break;
112
113 case CIMTYPE_REAL64:
114 Real64 propertyValueReal64;
115 val.get(propertyValueReal64);
116 schuur 1.1 value=WQLOperand(propertyValueReal64, WQL_DOUBLE_VALUE_TAG);
117 break;
118
119 case CIMTYPE_BOOLEAN :
120 Boolean booleanValue;
121 val.get(booleanValue);
122 value=WQLOperand(booleanValue, WQL_BOOLEAN_VALUE_TAG);
123 break;
124
125 case CIMTYPE_CHAR16:
126 case CIMTYPE_DATETIME :
127 case CIMTYPE_STRING : {
128 String strValue;
129 val.get(strValue);
130 value=WQLOperand(strValue,WQL_STRING_VALUE_TAG);
131 break;
132 }
133 default: return false;
134 }
135 return true;
136 }
137 schuur 1.1
138 PEGASUS_NAMESPACE_END
|