/** * INTERNAL: * Build the nested record, this can be overwriten by subclasses to use their subclass instance. */ public XMLRecord buildNestedRow(Element element) { DOMRecord record = new DOMRecord(element); record.setUnmarshaller(this.getUnmarshaller()); record.setOwningObject(this.getCurrentObject()); record.setDocPresPolicy(this.getDocPresPolicy()); record.setReferenceResolver(referenceResolver); return record; }
/** * INTERNAL: * Build the nested record, this can be overwriten by subclasses to use their subclass instance. */ public XMLRecord buildNestedRow(Element element) { DOMRecord record = new DOMRecord(element); record.setUnmarshaller(this.getUnmarshaller()); record.setOwningObject(this.getCurrentObject()); record.setDocPresPolicy(this.getDocPresPolicy()); record.setReferenceResolver(referenceResolver); return record; }
public AbstractRecord createRecordFor(Object attributeValue, Field xmlField, XMLRecord parentRecord, Mapping mapping) { DocumentPreservationPolicy policy = parentRecord.getDocPresPolicy(); Element newNode = null; if(policy != null) { newNode = (Element)policy.getNodeForObject(attributeValue); } if(newNode == null) { newNode = XPathEngine.getInstance().createUnownedElement(parentRecord.getDOM(), xmlField); if(policy !=null ){ if(xmlField.isSelfField()) { policy.addObjectToCache(attributeValue, newNode, mapping); } else { policy.addObjectToCache(attributeValue, newNode); } } } DOMRecord nestedRecord = new DOMRecord(newNode); nestedRecord.setMarshaller(parentRecord.getMarshaller()); nestedRecord.setLeafElementType(parentRecord.getLeafElementType()); parentRecord.setLeafElementType((XPathQName)null); nestedRecord.setDocPresPolicy(policy); nestedRecord.setXOPPackage(parentRecord.isXOPPackage()); nestedRecord.setReferenceResolver(((DOMRecord) parentRecord).getReferenceResolver()); return nestedRecord; }
public AbstractRecord createRecordFor(Object attributeValue, Field xmlField, XMLRecord parentRecord, Mapping mapping) { DocumentPreservationPolicy policy = parentRecord.getDocPresPolicy(); Element newNode = null; if(policy != null) { newNode = (Element)policy.getNodeForObject(attributeValue); } if(newNode == null) { newNode = XPathEngine.getInstance().createUnownedElement(parentRecord.getDOM(), xmlField); if(policy !=null ){ if(xmlField.isSelfField()) { policy.addObjectToCache(attributeValue, newNode, mapping); } else { policy.addObjectToCache(attributeValue, newNode); } } } DOMRecord nestedRecord = new DOMRecord(newNode); nestedRecord.setMarshaller(parentRecord.getMarshaller()); nestedRecord.setLeafElementType(parentRecord.getLeafElementType()); parentRecord.setLeafElementType((XPathQName)null); nestedRecord.setDocPresPolicy(policy); nestedRecord.setXOPPackage(parentRecord.isXOPPackage()); nestedRecord.setReferenceResolver(((DOMRecord) parentRecord).getReferenceResolver()); return nestedRecord; }