public Object convertObjectValueToDataValue(Object objectValue, Session session) { if(objectValue instanceof XMLRoot) { return ((XMLRoot)objectValue).getObject(); } else { return objectValue; } }
public Object convertObjectValueToDataValue(Object objectValue, Session session) { if(objectValue instanceof XMLRoot) { return ((XMLRoot)objectValue).getObject(); } else { return objectValue; } }
public Object convertObjectValueToDataValue(Object objectValue, Session session) { if(objectValue instanceof XMLRoot) { return ((XMLRoot)objectValue).getObject(); } else { return objectValue; } }
private boolean isSimpleXMLRoot(XMLRoot xmlRoot) { Class xmlRootObjectClass = xmlRoot.getObject().getClass(); if (XMLConversionManager.getDefaultJavaTypes().get(xmlRootObjectClass) != null || ClassConstants.List_Class.isAssignableFrom(xmlRootObjectClass) || ClassConstants.XML_GREGORIAN_CALENDAR.isAssignableFrom(xmlRootObjectClass) || ClassConstants.DURATION.isAssignableFrom(xmlRootObjectClass)) { return true; } else if(xmlRoot.getObject() instanceof org.w3c.dom.Node) { return true; } return false; }
protected XMLDescriptor getDescriptor(XMLRoot object) throws XMLMarshalException { XMLDescriptor descriptor = null; try { AbstractSession session = xmlContext.getSession(((XMLRoot) object).getObject()); if(null == session) { return null; } descriptor = (XMLDescriptor) session.getDescriptor(((XMLRoot) object).getObject()); } catch (XMLMarshalException marshalException) { if ((descriptor == null) && isSimpleXMLRoot((XMLRoot) object)) { return null; } throw marshalException; } if (descriptor == null) { throw XMLMarshalException.descriptorNotFoundInProject(object.getClass().getName()); } return descriptor; }
/** * This method will update the cached XML node for the provided object. If no node exists for this * object, then no operation is performed. * @param obj */ public void updateXML(Object obj) { if(obj instanceof XMLRoot) { obj = ((XMLRoot)obj).getObject(); } Node associatedNode = documentPreservationPolicy.getNodeForObject(obj); if(associatedNode == null) { return; } updateXML(obj, associatedNode); }
protected XMLDescriptor getDescriptor(XMLRoot object, AbstractSession session) throws XMLMarshalException { XMLDescriptor descriptor = null; try { if(null == session) { return null; } descriptor = (XMLDescriptor) session.getDescriptor(((XMLRoot) object).getObject()); } catch (XMLMarshalException marshalException) { if ((descriptor == null) && isSimpleXMLRoot((XMLRoot) object)) { return null; } throw marshalException; } if (descriptor == null) { throw XMLMarshalException.descriptorNotFoundInProject(object.getClass().getName()); } return descriptor; }
private Object getValue(Setting setting) { if (null != setting.getMapping() || (setting.getName() != null && setting.getName().equals(TEXT_XPATH))) { Object value = setting.getValue(); if (value instanceof XMLRoot) { value = ((XMLRoot) value).getObject(); } return value; } if (null == setting.getChildren() || setting.getChildren().size() == 0) { return null; } return getValue(setting.getChildren().get(0)); }
private Object getValue(Setting setting) { if (null != setting.getMapping() || (setting.getName() != null && setting.getName().equals(TEXT_XPATH))) { Object value = setting.getValue(); if (value instanceof XMLRoot) { value = ((XMLRoot) value).getObject(); } return value; } if (null == setting.getChildren() || setting.getChildren().size() == 0) { return null; } return getValue(setting.getChildren().get(0)); }
/** * Convert the given object to XML and update the given marshal record with * that XML Document. * @param object the object to marshal * @param marshalRecord the marshalRecord to marshal the object to */ public void marshal(Object object, MarshalRecord marshalRecord) { boolean isXMLRoot = (object instanceof XMLRoot); AbstractSession session = null; XMLDescriptor xmlDescriptor = null; if(isXMLRoot){ try{ session = xmlContext.getSession(((XMLRoot)object).getObject()); if(session != null){ xmlDescriptor = getDescriptor(((XMLRoot)object).getObject(), session); } }catch (XMLMarshalException marshalException) { if (!isSimpleXMLRoot((XMLRoot) object)) { throw marshalException; } } }else{ session = xmlContext.getSession(object); xmlDescriptor = getDescriptor(object, session); } marshal(object, marshalRecord, session, xmlDescriptor, isXMLRoot); }
public boolean marshalSingleValue(XPathFragment xPathFragment, MarshalRecord marshalRecord, Object object, Object value, AbstractSession session, NamespaceResolver namespaceResolver, MarshalContext marshalContext) { if(value instanceof XMLRoot) { XMLRoot root = (XMLRoot)value; XPathFragment fragment = this.xmlField.getXPathFragment(); while(fragment != null && !fragment.nameIsText) { if(fragment.getNextFragment() == null || fragment.getHasText()) { if(fragment.getLocalName().equals(root.getLocalName())) { String fragUri = fragment.getNamespaceURI(); String namespaceUri = root.getNamespaceURI(); if((namespaceUri == null && fragUri == null) || (namespaceUri != null && fragUri != null && namespaceUri.equals(fragUri))) { return this.choiceElementNodeValue.marshalSingleValue(xPathFragment, marshalRecord, object, value, session, namespaceResolver, marshalContext); } } } fragment = fragment.getNextFragment(); } //if we didn't find a node value associated with this xmlroot, try finding one for the //value's class if(root.getObject() != null && xmlChoiceMapping.getClassToFieldMappings().get(root.getObject().getClass()) == this.xmlField) { return this.choiceElementNodeValue.marshal(xPathFragment, marshalRecord, object, session, namespaceResolver); } } else { if(value != null && xmlChoiceMapping.getClassToFieldMappings().get(value.getClass()) == this.xmlField) { return this.choiceElementNodeValue.marshalSingleValue(xPathFragment, marshalRecord, object, value, session, namespaceResolver, marshalContext); } } return false; }
valueClass = root.getObject().getClass();
public void updateXML(Object obj, Node associatedNode) { if (obj instanceof XMLRoot) { obj = ((XMLRoot)obj).getObject(); } Node objNode = this.getXMLNode(obj); AbstractSession session = context.getSession(obj); if (objNode == associatedNode) { DOMRecord root = new DOMRecord((Element)associatedNode); root.setDocPresPolicy(this.documentPreservationPolicy); XMLDescriptor rootDescriptor = (XMLDescriptor) session.getDescriptor(obj); ((XMLObjectBuilder)rootDescriptor.getObjectBuilder()).buildIntoNestedRow(root, obj, session); } }
private void writeSimpleValue(XMLField xmlRootField, Object element, Object originalObject, DOMRecord record, org.w3c.dom.Document doc, Node root, boolean wasXMLRoot, AbstractSession session) { if (wasXMLRoot) { if (((XMLRoot) originalObject).getNamespaceURI() != null) { String prefix = record.getNamespaceResolver().resolveNamespaceURI(((XMLRoot) originalObject).getNamespaceURI()); if ((prefix == null) || prefix.length() == 0) { xmlRootField.getXPathFragment().setGeneratedPrefix(true); prefix = record.getNamespaceResolver().generatePrefix(); } xmlRootField.getXPathFragment().setXPath(prefix + XMLConstants.COLON + ((XMLRoot) originalObject).getLocalName()); } } if (xmlRootField != null) { xmlRootField.setNamespaceResolver(record.getNamespaceResolver()); QName qname = ((XMLRoot) originalObject).getSchemaType(); if(qname != null){ if(!qname.equals(XMLConstants.STRING_QNAME)){ xmlRootField.setSchemaType(qname); xmlRootField.setIsTypedTextField(true); xmlRootField.addJavaConversion(((XMLRoot) originalObject).getObject().getClass(), qname); } } Node newNode = XPathEngine.getInstance().create(xmlRootField, root, element, session); } else { Text textNode = doc.createTextNode((String) element); root.appendChild(textNode); } }
private void writeSimpleValue(XMLField xmlRootField, Object element, Object originalObject, DOMRecord record, org.w3c.dom.Document doc, Node root, boolean wasXMLRoot, AbstractSession session) { if (wasXMLRoot) { if (((XMLRoot) originalObject).getNamespaceURI() != null) { String prefix = record.getNamespaceResolver().resolveNamespaceURI(((XMLRoot) originalObject).getNamespaceURI()); if ((prefix == null) || prefix.length() == 0) { xmlRootField.getXPathFragment().setGeneratedPrefix(true); prefix = record.getNamespaceResolver().generatePrefix(); } xmlRootField.getXPathFragment().setXPath(prefix + XMLConstants.COLON + ((XMLRoot) originalObject).getLocalName()); } } if (xmlRootField != null) { xmlRootField.setNamespaceResolver(record.getNamespaceResolver()); QName qname = ((XMLRoot) originalObject).getSchemaType(); if(qname != null){ if(!qname.equals(XMLConstants.STRING_QNAME)){ xmlRootField.setSchemaType(qname); xmlRootField.setIsTypedTextField(true); xmlRootField.addJavaConversion(((XMLRoot) originalObject).getObject().getClass(), qname); } } Node newNode = XPathEngine.getInstance().create(xmlRootField, root, element, session); } else { Text textNode = doc.createTextNode((String) element); root.appendChild(textNode); } }
private void writeSimpleValue(XMLField xmlRootField, Object element, Object originalObject, DOMRecord record, org.w3c.dom.Document doc, Node root, boolean wasXMLRoot, AbstractSession session) { if (wasXMLRoot) { if (((XMLRoot) originalObject).getRootFragment().getNamespaceURI() != null) { String prefix = record.getNamespaceResolver().resolveNamespaceURI(((XMLRoot) originalObject).getRootFragment().getNamespaceURI()); if ((prefix == null) || prefix.length() == 0) { xmlRootField.getXPathFragment().setGeneratedPrefix(true); prefix = record.getNamespaceResolver().generatePrefix(); } xmlRootField.getXPathFragment().setXPath(prefix + XMLConstants.COLON + ((XMLRoot) originalObject).getLocalName()); } } if (xmlRootField != null) { xmlRootField.setNamespaceResolver(record.getNamespaceResolver()); QName qname = ((XMLRoot) originalObject).getSchemaType(); if(qname != null){ if(!qname.equals(XMLConstants.STRING_QNAME)){ xmlRootField.setSchemaType(qname); xmlRootField.setIsTypedTextField(true); xmlRootField.addJavaConversion(((XMLRoot) originalObject).getObject().getClass(), qname); } } Node newNode = XPathEngine.getInstance().create(xmlRootField, root, element, session); } else { Text textNode = doc.createTextNode((String) element); root.appendChild(textNode); } }
public boolean add(Property property, Object value) { if (addSettingWithoutModifyingDataObject(property, value)) { if (property != null && property.isOpenContent() && dataObject.getType().isOpen()) { dataObject.addOpenContentProperty(property); } if (value instanceof XMLRoot) { value = ((XMLRoot) value).getObject(); } if (property.isMany()) { ListWrapper listWrapper = (ListWrapper) dataObject.getList(property); listWrapper.add(value, false); } else { dataObject.setPropertyInternal((SDOProperty) property, value, false); } return true; } return false; }
public boolean add(Property property, Object value) { if (addSettingWithoutModifyingDataObject(property, value)) { if (property != null && property.isOpenContent() && dataObject.getType().isOpen()) { dataObject.addOpenContentProperty(property); } if (value instanceof XMLRoot) { value = ((XMLRoot) value).getObject(); } if (property.isMany()) { ListWrapper listWrapper = (ListWrapper) dataObject.getList(property); listWrapper.add(value, false); } else { dataObject.setPropertyInternal((SDOProperty) property, value, false); } return true; } return false; }
xmlRoot.setLocalName(((XMLRoot) value).getLocalName()); xmlRoot.setNamespaceURI(((XMLRoot) value).getNamespaceURI()); xmlRoot.setObject(((XMLRoot) value).getObject()); } else { xmlRoot.setLocalName(sdoProperty.getName());