private Object createXMLRootForNode(Node node) { Root xmlRoot = xmlUnmarshaller.createRoot(); xmlRoot.setObject(node); if (node != null) { xmlRoot.setLocalName(node.getLocalName()); xmlRoot.setNamespaceURI(node.getNamespaceURI()); } return xmlRoot; }
private Object createXMLRootForNode(Node node) { Root xmlRoot = xmlUnmarshaller.createRoot(); xmlRoot.setObject(node); if (node != null) { xmlRoot.setLocalName(node.getLocalName()); xmlRoot.setNamespaceURI(node.getNamespaceURI()); } return xmlRoot; }
private Root wrapObjectInXMLRoot(JAXBElement wrapperElement, Object value, TypeMappingInfo typeMappingInfo) { Root xmlroot = new Root(); Object objectValue = value; xmlroot.setObject(objectValue); QName qname = wrapperElement.getName(); xmlroot.setLocalName(qname.getLocalPart()); xmlroot.setNamespaceURI(qname.getNamespaceURI()); xmlroot.setDeclaredType(wrapperElement.getDeclaredType()); if(typeMappingInfo != null){ xmlroot.setSchemaType(typeMappingInfo.getSchemaType()); } else if(value != null) { if (value.getClass() == CoreClassConstants.ABYTE || value.getClass() == CoreClassConstants.APBYTE || value.getClass().getCanonicalName().equals("javax.activation.DataHandler")) { xmlroot.setSchemaType(Constants.BASE_64_BINARY_QNAME); } } return xmlroot; }
private Root wrapObjectInXMLRoot(JAXBElement wrapperElement, Object value, TypeMappingInfo typeMappingInfo) { Root xmlroot = new Root(); Object objectValue = value; xmlroot.setObject(objectValue); QName qname = wrapperElement.getName(); xmlroot.setLocalName(qname.getLocalPart()); xmlroot.setNamespaceURI(qname.getNamespaceURI()); xmlroot.setDeclaredType(wrapperElement.getDeclaredType()); if(typeMappingInfo != null){ xmlroot.setSchemaType(typeMappingInfo.getSchemaType()); } else if(value != null) { if (value.getClass() == CoreClassConstants.ABYTE || value.getClass() == CoreClassConstants.APBYTE || value.getClass().getCanonicalName().equals("javax.activation.DataHandler")) { xmlroot.setSchemaType(Constants.BASE_64_BINARY_QNAME); } } return xmlroot; }
public void marshal(Object obj, Object xmlNode) throws MarshalException { if (null == obj || null == xmlNode) { throw new IllegalArgumentException(); } try { if (obj instanceof JAXBElement) { JAXBElement jaxbElem = (JAXBElement) obj; Root xmlRoot = new Root(); xmlRoot.setObject(jaxbElem.getValue()); xmlRoot.setLocalName(jaxbElem.getName().getLocalPart()); xmlRoot.setNamespaceURI(jaxbElem.getName().getNamespaceURI()); xmlBinder.marshal(xmlRoot, (Node) xmlNode); } else { xmlBinder.marshal(obj, (Node) xmlNode); } } catch (Exception e) { throw new MarshalException(e); } }
@Override public void marshal(Object obj, Object xmlNode) throws MarshalException { if (null == obj || null == xmlNode) { throw new IllegalArgumentException(); } try { if (obj instanceof JAXBElement) { JAXBElement jaxbElem = (JAXBElement) obj; Root xmlRoot = new Root(); xmlRoot.setObject(jaxbElem.getValue()); xmlRoot.setLocalName(jaxbElem.getName().getLocalPart()); xmlRoot.setNamespaceURI(jaxbElem.getName().getNamespaceURI()); xmlBinder.marshal(xmlRoot, (Node) xmlNode); } else { xmlBinder.marshal(obj, (Node) xmlNode); } } catch (Exception e) { throw new MarshalException(e); } }
public Object convertObjectValueToDataValue(Object objectValue, Session session, XMLMarshaller marshaller) { if(null != nestedConverter) { objectValue = nestedConverter.convertObjectValueToDataValue(objectValue, session, marshaller); } if(objectValue instanceof JAXBElement) { ClassDescriptor desc = session.getDescriptor(objectValue); if(desc == null || objectValue instanceof WrappedValue){ JAXBElement element = (JAXBElement) objectValue; Root root = new XMLRoot(); root.setLocalName(element.getName().getLocalPart()); root.setNamespaceURI(element.getName().getNamespaceURI()); root.setObject(element.getValue()); root.setDeclaredType(element.getDeclaredType()); root.setNil(element.isNil()); return root; } } return objectValue; }
@Override public Object convertObjectValueToDataValue(Object objectValue, Session session, XMLMarshaller marshaller) { if(null != nestedConverter) { objectValue = nestedConverter.convertObjectValueToDataValue(objectValue, session, marshaller); } if(objectValue instanceof JAXBElement) { ClassDescriptor desc = session.getDescriptor(objectValue); if(desc == null || objectValue instanceof WrappedValue){ JAXBElement element = (JAXBElement) objectValue; Root root = new XMLRoot(); root.setLocalName(element.getName().getLocalPart()); root.setNamespaceURI(element.getName().getNamespaceURI()); root.setObject(element.getValue()); root.setDeclaredType(element.getDeclaredType()); root.setNil(element.isNil()); return root; } } return objectValue; }
public Object getObject() { if(object == null) { if(this.descriptor != null) { if(this.unmarshaller.isResultAlwaysXMLRoot() || descriptor.isResultAlwaysXMLRoot() || shouldWrap){ object = this.descriptor.wrapObjectInXMLRoot(this.rootRecord, (this.unmarshaller.isResultAlwaysXMLRoot() || descriptor.isResultAlwaysXMLRoot())); }else { object = this.rootRecord.getCurrentObject(); } } else if(documentBuilder != null) { Node node = documentBuilder.getDocument().getDocumentElement(); Root root = unmarshaller.createRoot(); root.setLocalName(node.getLocalName()); root.setNamespaceURI(node.getNamespaceURI()); root.setObject(node); object = root; } else { if(rootRecord != null) { object = this.rootRecord.getCurrentObject(); } } } return this.object; }
public Object getObject() { if(object == null) { if(this.descriptor != null) { if(this.unmarshaller.isResultAlwaysXMLRoot() || descriptor.isResultAlwaysXMLRoot() || shouldWrap){ object = this.descriptor.wrapObjectInXMLRoot(this.rootRecord, (this.unmarshaller.isResultAlwaysXMLRoot() || descriptor.isResultAlwaysXMLRoot())); }else { object = this.rootRecord.getCurrentObject(); } } else if(documentBuilder != null) { Node node = documentBuilder.getDocument().getDocumentElement(); Root root = unmarshaller.createRoot(); root.setLocalName(node.getLocalName()); root.setNamespaceURI(node.getNamespaceURI()); root.setObject(node); object = root; } else { if(rootRecord != null) { object = this.rootRecord.getCurrentObject(); } } } return this.object; }
/** * INTERNAL: * Determines the appropriate object to return from the unmarshal * call. The method will either return the object created in the * xmlReader.parse() call or an instance of Root. An Root * instance will be returned if the DOMRecord element being * unmarshalled does not equal the descriptor's default root * element. * * @param object * @param elementNamespaceUri * @param elementLocalName * @param elementPrefix * @return object */ public Object wrapObjectInXMLRoot(Object object, String elementNamespaceUri, String elementLocalName, String elementPrefix, boolean forceWrap, boolean isNamespaceAware, XMLUnmarshaller xmlUnmarshaller) { if (forceWrap || shouldWrapObject(object, elementNamespaceUri, elementLocalName, elementPrefix, isNamespaceAware)) { // if the DOMRecord element != descriptor's default // root element, create an Root, populate and return it Root xmlRoot = new XMLRoot(); xmlRoot.setLocalName(elementLocalName); xmlRoot.setNamespaceURI(elementNamespaceUri); xmlRoot.setObject(object); setDeclaredTypeOnXMLRoot(xmlRoot, elementNamespaceUri, elementLocalName, isNamespaceAware, xmlUnmarshaller); return xmlRoot; } return object; }
/** * INTERNAL: * Determines the appropriate object to return from the unmarshal * call. The method will either return the object created in the * xmlReader.parse() call or an instance of Root. An Root * instance will be returned if the DOMRecord element being * unmarshalled does not equal the descriptor's default root * element. * * @param object * @param elementNamespaceUri * @param elementLocalName * @param elementPrefix * @return object */ public Object wrapObjectInXMLRoot(Object object, String elementNamespaceUri, String elementLocalName, String elementPrefix, boolean forceWrap, boolean isNamespaceAware, XMLUnmarshaller xmlUnmarshaller) { if (forceWrap || shouldWrapObject(object, elementNamespaceUri, elementLocalName, elementPrefix, isNamespaceAware)) { // if the DOMRecord element != descriptor's default // root element, create an Root, populate and return it Root xmlRoot = new XMLRoot(); xmlRoot.setLocalName(elementLocalName); xmlRoot.setNamespaceURI(elementNamespaceUri); xmlRoot.setObject(object); setDeclaredTypeOnXMLRoot(xmlRoot, elementNamespaceUri, elementLocalName, isNamespaceAware, xmlUnmarshaller); return xmlRoot; } return object; }
/** * INTERNAL: * @return */ public Object wrapObjectInXMLRoot(Object object, String elementNamespaceUri, String elementLocalName, String elementPrefix, String encoding, String version, boolean forceWrap, boolean isNamespaceAware, XMLUnmarshaller unmarshaller) { if (forceWrap || shouldWrapObject(object, elementNamespaceUri, elementLocalName, elementPrefix, isNamespaceAware)) { // if the DOMRecord element != descriptor's default // root element, create an XMLRoot, populate and return it Root xmlRoot = new XMLRoot(); xmlRoot.setLocalName(elementLocalName); xmlRoot.setNamespaceURI(elementNamespaceUri); xmlRoot.setObject(object); xmlRoot.setEncoding(encoding); xmlRoot.setVersion(version); setDeclaredTypeOnXMLRoot(xmlRoot, elementNamespaceUri, elementLocalName, isNamespaceAware, unmarshaller); return xmlRoot; } return object; }
/** * INTERNAL: * @return */ public Object wrapObjectInXMLRoot(Object object, String elementNamespaceUri, String elementLocalName, String elementPrefix, String encoding, String version, boolean forceWrap, boolean isNamespaceAware, XMLUnmarshaller unmarshaller) { if (forceWrap || shouldWrapObject(object, elementNamespaceUri, elementLocalName, elementPrefix, isNamespaceAware)) { // if the DOMRecord element != descriptor's default // root element, create an XMLRoot, populate and return it Root xmlRoot = new XMLRoot(); xmlRoot.setLocalName(elementLocalName); xmlRoot.setNamespaceURI(elementNamespaceUri); xmlRoot.setObject(object); xmlRoot.setEncoding(encoding); xmlRoot.setVersion(version); setDeclaredTypeOnXMLRoot(xmlRoot, elementNamespaceUri, elementLocalName, isNamespaceAware, unmarshaller); return xmlRoot; } return object; }
protected void setOrAddAttributeValue(UnmarshalRecord unmarshalRecord, Object value, XPathFragment xPathFragment, Object collection){ if (!xmlAnyObjectMapping.usesXMLRoot()) { unmarshalRecord.setAttributeValue(value, xmlAnyObjectMapping); } else { Root xmlRoot = unmarshalRecord.createRoot(); xmlRoot.setNamespaceURI(xPathFragment.getNamespaceURI()); xmlRoot.setSchemaType(unmarshalRecord.getTypeQName()); xmlRoot.setLocalName(xPathFragment.getLocalName()); xmlRoot.setObject(value); // xmlRoot.setDeclaredType(type); unmarshalRecord.setAttributeValue(xmlRoot, xmlAnyObjectMapping); } }
protected void setOrAddAttributeValue(UnmarshalRecord unmarshalRecord, Object value, XPathFragment xPathFragment, Object collection){ if (!xmlAnyObjectMapping.usesXMLRoot()) { unmarshalRecord.setAttributeValue(value, xmlAnyObjectMapping); } else { Root xmlRoot = unmarshalRecord.createRoot(); xmlRoot.setNamespaceURI(xPathFragment.getNamespaceURI()); xmlRoot.setSchemaType(unmarshalRecord.getTypeQName()); xmlRoot.setLocalName(xPathFragment.getLocalName()); xmlRoot.setObject(value); // xmlRoot.setDeclaredType(type); unmarshalRecord.setAttributeValue(xmlRoot, xmlAnyObjectMapping); } }
/** * Return a populated XMLRoot object. */ @Override public Object getCurrentObject() { Root xmlRoot = unmarshaller.createRoot(); xmlRoot.setLocalName(getLocalName()); xmlRoot.setNamespaceURI(getRootElementNamespaceUri()); if(currentObject == null) { // this assumes that since we're unmarshalling to a primitive wrapper, the root // element has a single text node. if, however, the root element doesn't have // a text node as a first child, we'll try converting null String val = null; if (characters != null) { val = characters.toString(); } xmlRoot.setObject(session.getDatasourcePlatform().getConversionManager().convertObject(val, targetClass)); } else { xmlRoot.setObject(currentObject); } return xmlRoot; }
/** * Return a populated XMLRoot object. */ @Override public Object getCurrentObject() { Root xmlRoot = unmarshaller.createRoot(); xmlRoot.setLocalName(getLocalName()); xmlRoot.setNamespaceURI(getRootElementNamespaceUri()); if(currentObject == null) { // this assumes that since we're unmarshalling to a primitive wrapper, the root // element has a single text node. if, however, the root element doesn't have // a text node as a first child, we'll try converting null String val = null; if (characters != null) { val = characters.toString(); } xmlRoot.setObject(session.getDatasourcePlatform().getConversionManager().convertObject(val, targetClass)); } else { xmlRoot.setObject(currentObject); } return xmlRoot; }
protected void setOrAddAttributeValue(UnmarshalRecord unmarshalRecord, Object value, XPathFragment xPathFragment, Object collection){ if (!xmlAnyCollectionMapping.usesXMLRoot() || xPathFragment.getLocalName() == null || (xmlAnyCollectionMapping.isMixedContent() && unmarshalRecord.getTextWrapperFragment() != null && unmarshalRecord.getTextWrapperFragment().equals(xPathFragment))) { unmarshalRecord.addAttributeValue(this, value); } else { Root xmlRoot = unmarshalRecord.createRoot(); xmlRoot.setNamespaceURI(xPathFragment.getNamespaceURI()); xmlRoot.setSchemaType(unmarshalRecord.getTypeQName()); xmlRoot.setLocalName(xPathFragment.getLocalName()); xmlRoot.setObject(value); unmarshalRecord.addAttributeValue(this, xmlRoot); } }
protected void setOrAddAttributeValue(UnmarshalRecord unmarshalRecord, Object value, XPathFragment xPathFragment, Object collection){ if (!xmlAnyCollectionMapping.usesXMLRoot() || xPathFragment.getLocalName() == null || (xmlAnyCollectionMapping.isMixedContent() && unmarshalRecord.getTextWrapperFragment() != null && unmarshalRecord.getTextWrapperFragment().equals(xPathFragment))) { unmarshalRecord.addAttributeValue(this, value); } else { Root xmlRoot = unmarshalRecord.createRoot(); xmlRoot.setNamespaceURI(xPathFragment.getNamespaceURI()); xmlRoot.setSchemaType(unmarshalRecord.getTypeQName()); xmlRoot.setLocalName(xPathFragment.getLocalName()); xmlRoot.setObject(value); unmarshalRecord.addAttributeValue(this, xmlRoot); } }