processingStack.add(new ProcessingInfo(parentPI.lastUnderlyingPI));
return;
}
final XMLSerializer xs = XMLSerializer.getInstance();
final Property cp = (xs == null) ? null : xs.getCurrentProperty();
final RuntimePropertyInfo ri = (cp == null) ? null : cp.getInfo();
final Type rt = (ri == null) ? null : ri.getRawType();
final String dn = (ri == null) ? null : ri.getName();
// rt is null for root elements
if (null == rt) {
if (writingAttr) {
// this should not happen:
processingStack.add(new ProcessingInfo(elementName, ri, false, null));
return;
} else {
processingStack.add(new ProcessingInfo(elementName, ri, false, null));
return;
}
}
if (primitiveTypes.contains(rt)) {
processingStack.add(new ProcessingInfo(elementName, ri, false, rt));
return;
}
// TODO: wildcard could still simulate an array by adding several elements of the same name
if (ri.isCollection() && !isWildcardElement(ri)) { // another array
if (!((parentPI != null) && (parentPI.isArray) && (parentPI.rpi == ri))) {
// another array
processingStack.add(new ProcessingInfo(elementName, ri, true, rt));
return;
}