1 karl 1.4 //%2006////////////////////////////////////////////////////////////////////////
|
2 schuur 1.1 //
|
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.;
|
6 schuur 1.1 // IBM Corp.; EMC Corporation, The Open Group.
|
7 karl 1.2 // 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.3 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
10 // EMC Corporation; VERITAS Software Corporation; The Open Group.
|
11 karl 1.4 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
12 // EMC Corporation; Symantec Corporation; The Open Group.
|
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 //%/////////////////////////////////////////////////////////////////////////////
33
34 schuur 1.1 #include "WQLInstancePropertySource.h"
35 #include <Pegasus/Common/CIMName.h>
36 #include <Pegasus/Common/CIMInstance.h>
37
38 PEGASUS_NAMESPACE_BEGIN
39
40 Boolean WQLInstancePropertySource::getValue(
|
41 karl 1.5 const CIMName& propertyName,
42 WQLOperand& value) const
|
43 schuur 1.1 {
44 unsigned int pos=ci.findProperty(propertyName);
45 if (pos==PEG_NOT_FOUND) return false;
46
47 CIMValue val=ci.getProperty(pos).getValue();
48 CIMType type=val.getType();
49
|
50 karl 1.5 if (val.isNull())
51 {
|
52 schuur 1.1 value=WQLOperand();
53 return true;
54 }
55 if (val.isArray()) return false;
56
|
57 karl 1.5 switch (type)
58 {
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 value=WQLOperand(propertyValueUint32, WQL_INTEGER_VALUE_TAG);
75 break;
76
77 case CIMTYPE_UINT64:
78 karl 1.5 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 case CIMTYPE_SINT32:
96 Sint32 propertyValueSint32;
97 val.get(propertyValueSint32);
98 value=WQLOperand(propertyValueSint32, WQL_INTEGER_VALUE_TAG);
99 karl 1.5 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 value=WQLOperand(propertyValueReal64, WQL_DOUBLE_VALUE_TAG);
117 break;
118
119 case CIMTYPE_BOOLEAN :
120 karl 1.5 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 {
129 String strValue;
130 val.get(strValue);
131 value=WQLOperand(strValue,WQL_STRING_VALUE_TAG);
132 break;
133 }
134 default: return false;
|
135 schuur 1.1 }
136 return true;
|
137 karl 1.5 }
|
138 schuur 1.1
139 PEGASUS_NAMESPACE_END
|