version 1.127.4.1, 2007/11/13 18:53:24
|
version 1.127.4.2, 2008/02/06 00:08:50
|
|
|
// | // |
// getEmbeddedObjectAttribute() | // getEmbeddedObjectAttribute() |
// | // |
// <!ENTITY % EmbeddedObject "EMBEDDEDOBJECT (object | instance) #IMPLIED"> |
// <!ENTITY % EmbeddedObject "EmbeddedObject (object | instance) #IMPLIED"> |
// | // |
//------------------------------------------------------------------------------ | //------------------------------------------------------------------------------ |
| |
|
|
{ | { |
String embeddedObject; | String embeddedObject; |
| |
if (!entry.getAttributeValue("EMBEDDEDOBJECT", embeddedObject)) |
// Check for both upper case and mixed case "EmbeddedObject" |
|
// because of an error in an earlier pegasus version where we |
|
// used upper case in the generation of the attribute name |
|
// whereas the DMTF spec calls for mixed case. |
|
if (!entry.getAttributeValue("EmbeddedObject", embeddedObject) && |
|
!entry.getAttributeValue("EMBEDDEDOBJECT", embeddedObject)) |
return String(); | return String(); |
| |
// The embeddedObject attribute, if present, must have the string | // The embeddedObject attribute, if present, must have the string |
|
|
String::equal(embeddedObject, "instance"))) | String::equal(embeddedObject, "instance"))) |
{ | { |
char buffer[MESSAGE_SIZE]; | char buffer[MESSAGE_SIZE]; |
sprintf(buffer, "%s.EMBEDDEDOBJECT", elementName); |
sprintf(buffer, "%s.EmbeddedObject", elementName); |
| |
MessageLoaderParms mlParms( | MessageLoaderParms mlParms( |
"Common.XmlReader.ILLEGAL_VALUE_FOR_ATTRIBUTE", | "Common.XmlReader.ILLEGAL_VALUE_FOR_ATTRIBUTE", |
|
|
Boolean propagated = getCimBooleanAttribute( | Boolean propagated = getCimBooleanAttribute( |
parser.getLine(), entry, "PROPERTY", "PROPAGATED", false, false); | parser.getLine(), entry, "PROPERTY", "PROPAGATED", false, false); |
| |
// Get PROPERTY.EMBEDDEDOBJECT attribute: |
// Get PROPERTY.EmbeddedObject attribute: |
| |
String embeddedObject = getEmbeddedObjectAttribute( | String embeddedObject = getEmbeddedObjectAttribute( |
parser.getLine(), entry, "PROPERTY"); | parser.getLine(), entry, "PROPERTY"); |
|
|
embeddedInstanceQualifierValue); | embeddedInstanceQualifierValue); |
} | } |
#endif // PEGASUS_EMBEDDED_INSTANCE_SUPPORT | #endif // PEGASUS_EMBEDDED_INSTANCE_SUPPORT |
// If the EMBEDDEDOBJECT attribute is present with value "object" |
// If the EmbeddedObject attribute is present with value "object" |
// or the EmbeddedObject qualifier exists on this property with value "true" | // or the EmbeddedObject qualifier exists on this property with value "true" |
// then |
// then convert the EmbeddedObject-encoded string into a CIMObject |
// Convert the EmbeddedObject-encoded string into a CIMObject |
|
#ifdef PEGASUS_EMBEDDED_INSTANCE_SUPPORT | #ifdef PEGASUS_EMBEDDED_INSTANCE_SUPPORT |
Boolean isEmbeddedObject = String::equal(embeddedObject, "object") || | Boolean isEmbeddedObject = String::equal(embeddedObject, "object") || |
embeddedObjectQualifierValue; | embeddedObjectQualifierValue; |
|
|
embeddedInstanceQualifierValue.size() > 0; | embeddedInstanceQualifierValue.size() > 0; |
if (isEmbeddedObject || isEmbeddedInstance) | if (isEmbeddedObject || isEmbeddedInstance) |
{ | { |
// The EMBEDDEDOBJECT attribute is only valid on Properties of type |
// The EmbeddedObject attribute is only valid on Properties of type |
// string | // string |
if (type == CIMTYPE_STRING) | if (type == CIMTYPE_STRING) |
{ | { |
|
|
{ | { |
MessageLoaderParms mlParms( | MessageLoaderParms mlParms( |
"Common.XmlReader.INVALID_EMBEDDEDOBJECT_TYPE", | "Common.XmlReader.INVALID_EMBEDDEDOBJECT_TYPE", |
"The EMBEDDEDOBJECT attribute is only valid on string types."); |
"The EmbeddedObject attribute is only valid on string types."); |
throw XmlValidationError(parser.getLine(), mlParms); | throw XmlValidationError(parser.getLine(), mlParms); |
} | } |
} | } |
#else | #else |
if (String::equal(embeddedObject, "object") || embeddedObjectQualifierValue) | if (String::equal(embeddedObject, "object") || embeddedObjectQualifierValue) |
{ | { |
// The EMBEDDEDOBJECT attribute is only valid on Properties of type |
// The EmbeddedObject attribute is only valid on Properties of type |
// string | // string |
if (type == CIMTYPE_STRING) | if (type == CIMTYPE_STRING) |
{ | { |
|
|
{ | { |
MessageLoaderParms mlParms( | MessageLoaderParms mlParms( |
"Common.XmlReader.INVALID_EMBEDDEDOBJECT_TYPE", | "Common.XmlReader.INVALID_EMBEDDEDOBJECT_TYPE", |
"The EMBEDDEDOBJECT attribute is only valid on string types."); |
"The EmbeddedObject attribute is only valid on string types."); |
throw XmlValidationError(parser.getLine(), mlParms); | throw XmlValidationError(parser.getLine(), mlParms); |
} | } |
} | } |
|
|
false, | false, |
false); | false); |
| |
// Get PROPERTY.EMBEDDEDOBJECT attribute: |
// Get PROPERTY.EmbeddedObject attribute: |
| |
String embeddedObject = getEmbeddedObjectAttribute( | String embeddedObject = getEmbeddedObjectAttribute( |
parser.getLine(), entry, "PROPERTY.ARRAY"); | parser.getLine(), entry, "PROPERTY.ARRAY"); |
|
|
embeddedInstanceQualifierValue); | embeddedInstanceQualifierValue); |
} | } |
#endif // PEGASUS_EMBEDDED_INSTANCE_SUPPORT | #endif // PEGASUS_EMBEDDED_INSTANCE_SUPPORT |
// If the EMBEDDEDOBJECT attribute is present with value "object" |
// If the EmbeddedObject attribute is present with value "object" |
// or the EmbeddedObject qualifier exists on this property with value "true" | // or the EmbeddedObject qualifier exists on this property with value "true" |
// then | // then |
// Convert the EmbeddedObject-encoded string into a CIMObject | // Convert the EmbeddedObject-encoded string into a CIMObject |
|
|
embeddedInstanceQualifierValue.size() > 0; | embeddedInstanceQualifierValue.size() > 0; |
if (isEmbeddedObject || isEmbeddedInstance) | if (isEmbeddedObject || isEmbeddedInstance) |
{ | { |
// The EMBEDDEDOBJECT attribute is only valid on Properties of type |
// The EmbeddedObject attribute is only valid on Properties of type |
// string | // string |
if (type == CIMTYPE_STRING) | if (type == CIMTYPE_STRING) |
{ | { |
|
|
{ | { |
MessageLoaderParms mlParms( | MessageLoaderParms mlParms( |
"Common.XmlReader.INVALID_EMBEDDEDOBJECT_TYPE", | "Common.XmlReader.INVALID_EMBEDDEDOBJECT_TYPE", |
"The EMBEDDEDOBJECT attribute is only valid on string types."); |
"The EmbeddedObject attribute is only valid on string types."); |
throw XmlValidationError(parser.getLine(), mlParms); | throw XmlValidationError(parser.getLine(), mlParms); |
} | } |
} | } |
#else | #else |
if (String::equal(embeddedObject, "object") || embeddedObjectQualifierValue) | if (String::equal(embeddedObject, "object") || embeddedObjectQualifierValue) |
{ | { |
// The EMBEDDEDOBJECT attribute is only valid on Properties of type |
// The EmbeddedObject attribute is only valid on Properties of type |
// string | // string |
if (type == CIMTYPE_STRING) | if (type == CIMTYPE_STRING) |
{ | { |
|
|
{ | { |
MessageLoaderParms mlParms( | MessageLoaderParms mlParms( |
"Common.XmlReader.INVALID_EMBEDDEDOBJECT_TYPE", | "Common.XmlReader.INVALID_EMBEDDEDOBJECT_TYPE", |
"The EMBEDDEDOBJECT attribute is only valid on string types."); |
"The EmbeddedObject attribute is only valid on string types."); |
throw XmlValidationError(parser.getLine(), mlParms); | throw XmlValidationError(parser.getLine(), mlParms); |
} | } |
} | } |
|
|
throw XmlValidationError(parser.getLine(), mlParms); | throw XmlValidationError(parser.getLine(), mlParms); |
} | } |
| |
// Get PROPERTY.EMBEDDEDOBJECT |
// Get PROPERTY.EmbeddedObject |
| |
String embeddedObject = getEmbeddedObjectAttribute( | String embeddedObject = getEmbeddedObjectAttribute( |
parser.getLine(), entry, "PARAMVALUE"); | parser.getLine(), entry, "PARAMVALUE"); |
|
|
effectiveType = type; | effectiveType = type; |
} | } |
| |
// If the EMBEDDEDOBJECT attribute is present with value "object" |
// If the EmbeddedObject attribute is present with value "object" |
// then | // then |
// Convert the EmbeddedObject-encoded string into a CIMObject | // Convert the EmbeddedObject-encoded string into a CIMObject |
#ifdef PEGASUS_EMBEDDED_INSTANCE_SUPPORT | #ifdef PEGASUS_EMBEDDED_INSTANCE_SUPPORT |
|
|
String::equal(embeddedObject, "instance"); | String::equal(embeddedObject, "instance"); |
if (isEmbeddedObject || isEmbeddedInstance) | if (isEmbeddedObject || isEmbeddedInstance) |
{ | { |
// The EMBEDDEDOBJECT attribute is only valid on Parameters |
// The EmbeddedObject attribute is only valid on Parameters |
// of type string | // of type string |
// The type must have been specified. | // The type must have been specified. |
if (gotType && (type == CIMTYPE_STRING)) | if (gotType && (type == CIMTYPE_STRING)) |
|
|
{ | { |
MessageLoaderParms mlParms( | MessageLoaderParms mlParms( |
"Common.XmlReader.INVALID_EMBEDDEDOBJECT_TYPE", | "Common.XmlReader.INVALID_EMBEDDEDOBJECT_TYPE", |
"The EMBEDDEDOBJECT attribute is only valid on " |
"The EmbeddedObject attribute is only valid on " |
"string types."); | "string types."); |
throw XmlValidationError(parser.getLine(), mlParms); | throw XmlValidationError(parser.getLine(), mlParms); |
} | } |
|
|
#else | #else |
if (String::equal(embeddedObject, "object")) | if (String::equal(embeddedObject, "object")) |
{ | { |
// The EMBEDDEDOBJECT attribute is only valid on Parameters |
// The EmbeddedObject attribute is only valid on Parameters |
// of type string | // of type string |
// The type must have been specified. | // The type must have been specified. |
if (gotType && (type == CIMTYPE_STRING)) | if (gotType && (type == CIMTYPE_STRING)) |
|
|
{ | { |
MessageLoaderParms mlParms( | MessageLoaderParms mlParms( |
"Common.XmlReader.INVALID_EMBEDDEDOBJECT_TYPE", | "Common.XmlReader.INVALID_EMBEDDEDOBJECT_TYPE", |
"The EMBEDDEDOBJECT attribute is only valid on " |
"The EmbeddedObject attribute is only valid on " |
"string types."); | "string types."); |
throw XmlValidationError(parser.getLine(), mlParms); | throw XmlValidationError(parser.getLine(), mlParms); |
} | } |
|
|
if (!testStartTag(parser, entry, "RETURNVALUE")) | if (!testStartTag(parser, entry, "RETURNVALUE")) |
return false; | return false; |
| |
// Get PROPERTY.EMBEDDEDOBJECT |
// Get PROPERTY.EmbeddedObject |
| |
String embeddedObject = getEmbeddedObjectAttribute( | String embeddedObject = getEmbeddedObjectAttribute( |
parser.getLine(), entry, "RETURNVALUE"); | parser.getLine(), entry, "RETURNVALUE"); |
|
|
{ | { |
MessageLoaderParms mlParms( | MessageLoaderParms mlParms( |
"Common.XmlReader.INVALID_EMBEDDEDOBJECT_TYPE", | "Common.XmlReader.INVALID_EMBEDDEDOBJECT_TYPE", |
"The EMBEDDEDOBJECT attribute is only valid on string " |
"The EmbeddedObject attribute is only valid on string " |
"types."); | "types."); |
throw XmlValidationError(parser.getLine(), mlParms); | throw XmlValidationError(parser.getLine(), mlParms); |
} | } |
|
|
{ | { |
MessageLoaderParms mlParms( | MessageLoaderParms mlParms( |
"Common.XmlReader.INVALID_EMBEDDEDOBJECT_TYPE", | "Common.XmlReader.INVALID_EMBEDDEDOBJECT_TYPE", |
"The EMBEDDEDOBJECT attribute is only valid on string " |
"The EmbeddedObject attribute is only valid on string " |
"types."); | "types."); |
throw XmlValidationError(parser.getLine(), mlParms); | throw XmlValidationError(parser.getLine(), mlParms); |
} | } |