Update of /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml
In directory vz-cvs-3.sog:/tmp/cvs-serv11875/src/org/sblim/cimclient/internal/cimxml
Modified Files:
Tag: Experimental
CIMXMLParserImpl.java
Log Message:
3297028 - Instances contain CIMClassProperty with DOM parser
Index: CIMXMLParserImpl.java
===================================================================
RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/CIMXMLParserImpl.java,v
retrieving revision 1.14.2.31
retrieving revision 1.14.2.32
diff -u -d -r1.14.2.31 -r1.14.2.32
--- CIMXMLParserImpl.java 3 May 2011 15:05:03 -0000 1.14.2.31
+++ CIMXMLParserImpl.java 3 May 2011 18:10:17 -0000 1.14.2.32
@@ -48,6 +48,7 @@
* 3027479 2010-07-09 blaschke-oss Dead store to local variable
* 3027615 2010-07-12 blaschke-oss Use CLASS_ARRAY_T instead of new CIMDataType(CLASS,0)
* 3293248 2011-05-03 blaschke-oss Support for CIM_ERROR instances within ERROR
+ * 3297028 2011-05-03 blaschke-oss Instances contain CIMClassProperty with DOM parser
*/
package org.sblim.cimclient.internal.cimxml;
@@ -1524,7 +1525,20 @@
*/
public static CIMProperty<?>[] parsePROPERTIES(Element pElement) throws CIMXMLParseException {
Vector<CIMClassProperty<?>> classPropVec = parseClassPropsToVec(pElement);
- return classPropVec.toArray(new CIMProperty[0]);
+ // The following does not convert Vector<CIMClassProperty> to
+ // CIMProperty[], it is still CIMClassProperty[]!!! You can treat it
+ // like a CIMProperty (property.getValue(), etc.) but (property
+ // instanceof CIMProperty) will return false!
+ // return classPropVec.toArray(new CIMProperty[0]);
+
+ int arraySize = classPropVec.size();
+ CIMProperty<?>[] retA = new CIMProperty[arraySize];
+ for (int i = 0; i < arraySize; i++) {
+ CIMClassProperty<?> prop = classPropVec.get(i);
+ retA[i] = new CIMProperty<Object>(prop.getName(), prop.getDataType(), prop.getValue(),
+ prop.isKey(), prop.isPropagated(), prop.getOriginClass());
+ }
+ return retA;
}
/**
|