protected Object buildObjectNoReferenceDescriptor(DOMRecord record, AbstractSession session, Node next, Object container, ContainerPolicy cp) { XMLConverter converter = ((XMLAnyCollectionMapping) this).getConverter(); XMLPlatformFactory.getInstance().getXMLPlatform().namespaceQualifyFragment((Element) next); Object objectValue = next; if (converter != null) { objectValue = converter.convertDataValueToObjectValue(objectValue, session, record.getUnmarshaller()); } cp.addInto(objectValue, container, session); return objectValue; }
if(xmlAnyCollectionMapping.getConverter() != null) { objectValue = xmlAnyCollectionMapping.getConverter().convertDataValueToObjectValue(objectValue, unmarshalRecord.getSession(), unmarshalRecord.getUnmarshaller()); if(xmlAnyCollectionMapping.getConverter() != null) { childObject = xmlAnyCollectionMapping.getConverter().convertDataValueToObjectValue(childObject, unmarshalRecord.getSession(), unmarshalRecord.getUnmarshaller()); setOrAddAttributeValueForKeepAsElement(builder, xmlAnyCollectionMapping, xmlAnyCollectionMapping.getConverter(), unmarshalRecord, true, null); } else { endElementProcessText(unmarshalRecord, xmlAnyCollectionMapping.getConverter(), xPathFragment, null); } else { unmarshalRecord.resetStringBuffer();
if (next.getNodeValue().trim().length() > 0) { objectValue = next.getNodeValue(); if(getConverter() != null) { objectValue = getConverter().convertDataValueToObjectValue(objectValue, session, record.getUnmarshaller()); objectValue = buildObjectForNonXMLRoot(referenceDescriptor, getConverter(), query, record, nestedRecord, joinManager, session, next, container, cp); } else { String schemaType = ((Element) next).getAttributeNS(XMLConstants.SCHEMA_INSTANCE_URL, XMLConstants.SCHEMA_TYPE_ATTRIBUTE); buildObjectAndWrapInXMLRoot(referenceDescriptor, getConverter(), query, record, nestedRecord, joinManager, session, next, container, cp); } else if ((referenceDescriptor == null) && (getKeepAsElementPolicy() == UnmarshalKeepAsElementPolicy.KEEP_UNKNOWN_AS_ELEMENT)) { buildObjectNoReferenceDescriptor(record, session, next, container, cp); if (getConverter() != null) { convertedValue = getConverter().convertDataValueToObjectValue(convertedValue, session, record.getUnmarshaller());
objectValue = buildObjectForNonXMLRoot(referenceDescriptor, getConverter(), query, record, nestedRecord, joinManager, session, next, container, cp); } else { String schemaType = ((Element) next).getAttributeNS(javax.xml.XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI, XMLConstants.SCHEMA_TYPE_ATTRIBUTE); Object objVal = buildObjectNoReferenceDescriptor(record, getConverter(), session, next, null, null); buildObjectAndWrapInXMLRoot(referenceDescriptor, getConverter(), query, record, nestedRecord, joinManager, session, next, container, cp); } else { if ((rootValue = buildXMLRootForText(next, schemaTypeQName, getConverter(), session, record)) != null) { cp.addInto(rootValue, container, session);
objectValue = buildObjectForNonXMLRoot(referenceDescriptor, getConverter(), query, record, nestedRecord, joinManager, session, next, container, cp); } else { String schemaType = ((Element) next).getAttributeNS(javax.xml.XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI, XMLConstants.SCHEMA_TYPE_ATTRIBUTE); Object objVal = buildObjectNoReferenceDescriptor(record, getConverter(), session, next, null, null); buildObjectAndWrapInXMLRoot(referenceDescriptor, getConverter(), query, record, nestedRecord, joinManager, session, next, container, cp); } else { if ((rootValue = buildXMLRootForText(next, schemaTypeQName, getConverter(), session, record)) != null) { cp.addInto(rootValue, container, session);
public boolean marshal(XPathFragment xPathFragment, MarshalRecord marshalRecord, Object object, AbstractSession session, NamespaceResolver namespaceResolver) { if (xmlAnyCollectionMapping.isReadOnly()) { return false; } ContainerPolicy cp = xmlAnyCollectionMapping.getContainerPolicy(); Object collection = xmlAnyCollectionMapping.getAttributeAccessor().getAttributeValueFromObject(object); if (null == collection) { return false; } Object iterator = cp.iteratorFor(collection); if (cp.hasNext(iterator)) { XPathFragment groupingFragment = marshalRecord.openStartGroupingElements(namespaceResolver); marshalRecord.closeStartGroupingElements(groupingFragment); } else { return false; } Object objectValue; while (cp.hasNext(iterator)) { objectValue = cp.next(iterator, session); if(xmlAnyCollectionMapping.getConverter() != null) { objectValue = xmlAnyCollectionMapping.getConverter().convertObjectValueToDataValue(objectValue, session, marshalRecord.getMarshaller()); } marshalSingleValue(xPathFragment, marshalRecord, object, objectValue, session, namespaceResolver, ObjectMarshalContext.getInstance()); } return true; }
while (cp.hasNext(iter) && (childNodeCount < childNodes.size())) { Object element = cp.next(iter, session); if(this.getConverter() != null) { element = getConverter().convertObjectValueToDataValue(element, session, record.getMarshaller());