version 1.19, 2002/09/18 21:38:06
|
version 1.20, 2002/09/20 16:48:11
|
|
|
_rep = new CIMKeyBindingRep(name, value, type); | _rep = new CIMKeyBindingRep(name, value, type); |
} | } |
| |
#ifdef PEGASUS_FUTURE |
|
CIMKeyBinding::CIMKeyBinding(const CIMName& name, const CIMValue& value) | CIMKeyBinding::CIMKeyBinding(const CIMName& name, const CIMValue& value) |
{ | { |
|
// ATTN-RK-20020920: Verify that real numbers cannot be keys |
|
if (value.isArray() || |
|
(value.getType() == CIMTYPE_REAL32) || |
|
(value.getType() == CIMTYPE_REAL64)) |
|
{ |
|
throw TypeMismatchException(); |
|
} |
|
|
String kbValue = value.toString(); | String kbValue = value.toString(); |
Type kbType; | Type kbType; |
| |
|
|
| |
_rep = new CIMKeyBindingRep(name, kbValue, kbType); | _rep = new CIMKeyBindingRep(name, kbValue, kbType); |
} | } |
#endif |
|
| |
CIMKeyBinding::~CIMKeyBinding() | CIMKeyBinding::~CIMKeyBinding() |
{ | { |
|
|
_rep->_type = type; | _rep->_type = type; |
} | } |
| |
#ifdef PEGASUS_FUTURE |
|
Boolean CIMKeyBinding::equal(CIMValue value) | Boolean CIMKeyBinding::equal(CIMValue value) |
{ | { |
|
// ATTN-RK-20020920: Verify that real numbers cannot be keys |
|
if (value.isArray() || |
|
(value.getType() == CIMTYPE_REAL32) || |
|
(value.getType() == CIMTYPE_REAL64)) |
|
{ |
|
return false; |
|
} |
|
|
CIMValue kbValue; | CIMValue kbValue; |
| |
try | try |
|
|
switch (value.getType()) | switch (value.getType()) |
{ | { |
case CIMTYPE_CHAR16: | case CIMTYPE_CHAR16: |
|
if (getType() != STRING) return false; |
kbValue.set(getValue()[0]); | kbValue.set(getValue()[0]); |
break; | break; |
case CIMTYPE_DATETIME: | case CIMTYPE_DATETIME: |
|
if (getType() != STRING) return false; |
kbValue.set(CIMDateTime(getValue())); | kbValue.set(CIMDateTime(getValue())); |
break; | break; |
case CIMTYPE_STRING: | case CIMTYPE_STRING: |
|
if (getType() != STRING) return false; |
kbValue.set(getValue()); | kbValue.set(getValue()); |
break; | break; |
case CIMTYPE_REFERENCE: | case CIMTYPE_REFERENCE: |
|
if (getType() != REFERENCE) return false; |
kbValue.set(CIMObjectPath(getValue())); | kbValue.set(CIMObjectPath(getValue())); |
break; | break; |
default: // Boolean and numerics |
case CIMTYPE_BOOLEAN: |
|
if (getType() != BOOLEAN) return false; |
|
kbValue = XmlReader::stringToValue(0, getValue().getCString(), |
|
value.getType()); |
|
break; |
|
default: // Numerics |
|
if (getType() != NUMERIC) return false; |
kbValue = XmlReader::stringToValue(0, getValue().getCString(), | kbValue = XmlReader::stringToValue(0, getValue().getCString(), |
value.getType()); | value.getType()); |
break; | break; |
|
|
| |
return value.equal(kbValue); | return value.equal(kbValue); |
} | } |
#endif |
|
| |
Boolean operator==(const CIMKeyBinding& x, const CIMKeyBinding& y) | Boolean operator==(const CIMKeyBinding& x, const CIMKeyBinding& y) |
{ | { |