/** * Used when an nil attribute should be written * @since EclipseLink 2.4 */ public void emptySimple(NamespaceResolver namespaceResolver){ XPathFragment groupingFragment = openStartGroupingElements(namespaceResolver); closeStartGroupingElements(groupingFragment); }
@Override public void closeStartGroupingElements(XPathFragment groupingFragment) { validatingRecord.closeStartGroupingElements(groupingFragment); marshalRecord.closeStartGroupingElements(groupingFragment); }
/** * Used when an nil attribute should be written * @since EclipseLink 2.4 */ public void emptySimple(NamespaceResolver namespaceResolver){ XPathFragment groupingFragment = openStartGroupingElements(namespaceResolver); closeStartGroupingElements(groupingFragment); }
@Override public void closeStartGroupingElements(XPathFragment groupingFragment) { validatingRecord.closeStartGroupingElements(groupingFragment); marshalRecord.closeStartGroupingElements(groupingFragment); }
/** * Handle marshal of an empty collection. * @param xPathFragment * @param namespaceResolver * @param openGrouping if grouping elements should be marshalled for empty collections * @return */ public boolean emptyCollection(XPathFragment xPathFragment, NamespaceResolver namespaceResolver, boolean openGrouping) { if (openGrouping) { XPathFragment groupingFragment = openStartGroupingElements(namespaceResolver); closeStartGroupingElements(groupingFragment); return true; } else { return false; } }
/** * Handle marshal of an empty collection. * @param xPathFragment * @param namespaceResolver * @param openGrouping if grouping elements should be marshalled for empty collections * @return */ public boolean emptyCollection(XPathFragment xPathFragment, NamespaceResolver namespaceResolver, boolean openGrouping) { if (openGrouping) { XPathFragment groupingFragment = openStartGroupingElements(namespaceResolver); closeStartGroupingElements(groupingFragment); return true; } else { return false; } }
/** * Used when an nil attribute should be written * @since EclipseLink 2.4 */ public void emptyAttribute(XPathFragment xPathFragment,NamespaceResolver namespaceResolver){ XPathFragment groupingFragment = openStartGroupingElements(namespaceResolver); // We mutate the null into an empty string attribute(xPathFragment, namespaceResolver, Constants.EMPTY_STRING); closeStartGroupingElements(groupingFragment); }
/** * Used when an nil attribute should be written * @since EclipseLink 2.4 */ public void emptyAttribute(XPathFragment xPathFragment,NamespaceResolver namespaceResolver){ XPathFragment groupingFragment = openStartGroupingElements(namespaceResolver); // We mutate the null into an empty string attribute(xPathFragment, namespaceResolver, Constants.EMPTY_STRING); closeStartGroupingElements(groupingFragment); }
/** * Used when an nil attribute should be written * @since EclipseLink 2.4 */ public void nilSimple(NamespaceResolver namespaceResolver){ XPathFragment groupingFragment = openStartGroupingElements(namespaceResolver); String xsiPrefix = processNamespaceResolverForXSIPrefix(namespaceResolver); StringBuilder qName = new StringBuilder(Constants.ATTRIBUTE); // Unsynchronized qName.append(xsiPrefix).append(COLON_W_SCHEMA_NIL_ATTRIBUTE); XPathFragment nilFragment = new XPathFragment(qName.toString()); nilFragment.setNamespaceURI(javax.xml.XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI); attribute(nilFragment, namespaceResolver, TRUE); closeStartGroupingElements(groupingFragment); }
/** * Used when an nil attribute should be written * @since EclipseLink 2.4 */ public void nilSimple(NamespaceResolver namespaceResolver){ XPathFragment groupingFragment = openStartGroupingElements(namespaceResolver); String xsiPrefix = processNamespaceResolverForXSIPrefix(namespaceResolver); StringBuilder qName = new StringBuilder(Constants.ATTRIBUTE); // Unsynchronized qName.append(xsiPrefix).append(COLON_W_SCHEMA_NIL_ATTRIBUTE); XPathFragment nilFragment = new XPathFragment(qName.toString()); nilFragment.setNamespaceURI(javax.xml.XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI); attribute(nilFragment, namespaceResolver, TRUE); closeStartGroupingElements(groupingFragment); }
@Override public boolean marshal(XPathFragment xPathFragment, MarshalRecord marshalRecord, Object object, AbstractSession session, NamespaceResolver namespaceResolver) { XPathFragment groupingFragment = marshalRecord.openStartGroupingElements(namespaceResolver); marshalRecord.closeStartGroupingElements(groupingFragment); return marshalSingleValue(xPathFragment, marshalRecord, null, object, session, namespaceResolver, ObjectMarshalContext.getInstance()); }
/** * Used when an nil attribute should be written * @since EclipseLink 2.4 */ public void emptyComplex(XPathFragment xPathFragment, NamespaceResolver namespaceResolver){ XPathFragment groupingFragment = openStartGroupingElements(namespaceResolver); closeStartGroupingElements(groupingFragment); openStartElement(xPathFragment, namespaceResolver); closeStartElement(); endElement(xPathFragment, namespaceResolver); }
/** * Used when an nil attribute should be written * @since EclipseLink 2.4 */ public void emptyComplex(XPathFragment xPathFragment, NamespaceResolver namespaceResolver){ XPathFragment groupingFragment = openStartGroupingElements(namespaceResolver); closeStartGroupingElements(groupingFragment); openStartElement(xPathFragment, namespaceResolver); closeStartElement(); endElement(xPathFragment, namespaceResolver); }
public boolean marshalSingleValue(XPathFragment xPathFragment, MarshalRecord marshalRecord, Object object, Object value, AbstractSession session, NamespaceResolver namespaceResolver, MarshalContext marshalContext) { if(value == null) { return false; } XPathFragment groupingFragment = marshalRecord.openStartGroupingElements(namespaceResolver); if (getXMLField().getLastXPathFragment().isAttribute()) { marshalRecord.add(getXMLField(), value); marshalRecord.closeStartGroupingElements(groupingFragment); } else { marshalRecord.closeStartGroupingElements(groupingFragment); marshalRecord.add(getXMLField(), value); } return true; }
@Override public boolean marshalSingleValue(XPathFragment xPathFragment, MarshalRecord marshalRecord, Object object, Object value, AbstractSession session, NamespaceResolver namespaceResolver, MarshalContext marshalContext) { if (xmlCollectionReferenceMapping.usesSingleNode()) { XPathFragment groupingFragment = marshalRecord.openStartGroupingElements(namespaceResolver); if (xPathFragment.isAttribute()) { marshalRecord.attribute(xPathFragment, namespaceResolver, (String) value); marshalRecord.closeStartGroupingElements(groupingFragment); } else { marshalRecord.closeStartGroupingElements(groupingFragment); marshalRecord.characters((String) value); } } else { for (int x = 0, size = marshalContext.getNonAttributeChildrenSize(branchNode); x < size; x++) { XPathNode xPathNode = (XPathNode)marshalContext.getNonAttributeChild(x, branchNode); xPathNode.marshal((MarshalRecord)marshalRecord, value, session, namespaceResolver, marshalRecord.getMarshaller(), marshalContext.getMarshalContext(x)); } } return true; }
/** * Used when an nil attribute should be written * @since EclipseLink 2.4 */ public void nilComplex(XPathFragment xPathFragment, NamespaceResolver namespaceResolver){ XPathFragment groupingFragment = openStartGroupingElements(namespaceResolver); closeStartGroupingElements(groupingFragment); openStartElement(xPathFragment, namespaceResolver); String xsiPrefix = processNamespaceResolverForXSIPrefix(namespaceResolver); XPathFragment nilFragment = new XPathFragment(Constants.ATTRIBUTE + xsiPrefix + COLON_W_SCHEMA_NIL_ATTRIBUTE); nilFragment.setNamespaceURI(javax.xml.XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI); attribute(nilFragment, namespaceResolver, TRUE); closeStartElement(); endElement(xPathFragment, namespaceResolver); }
/** * Used when an nil attribute should be written * @since EclipseLink 2.4 */ public void nilComplex(XPathFragment xPathFragment, NamespaceResolver namespaceResolver){ XPathFragment groupingFragment = openStartGroupingElements(namespaceResolver); closeStartGroupingElements(groupingFragment); openStartElement(xPathFragment, namespaceResolver); String xsiPrefix = processNamespaceResolverForXSIPrefix(namespaceResolver); XPathFragment nilFragment = new XPathFragment(Constants.ATTRIBUTE + xsiPrefix + COLON_W_SCHEMA_NIL_ATTRIBUTE); nilFragment.setNamespaceURI(javax.xml.XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI); attribute(nilFragment, namespaceResolver, TRUE); closeStartElement(); endElement(xPathFragment, namespaceResolver); }
public boolean marshalSingleValue(XPathFragment xPathFragment, MarshalRecord marshalRecord, Object object, Object targetObject, AbstractSession session, NamespaceResolver namespaceResolver, MarshalContext marshalContext) { Object fieldValue = xmlObjectReferenceMapping.buildFieldValue(targetObject, xmlField, session); if (fieldValue == null) { if(null != targetObject) { XMLField fkField = (XMLField) xmlObjectReferenceMapping.getSourceToTargetKeyFieldAssociations().get(xmlField); fieldValue = marshalRecord.getMarshaller().getXMLContext().getValueByXPath(targetObject, fkField.getXPath(), fkField.getNamespaceResolver(), Object.class); } if(null == fieldValue) { return false; } } QName schemaType = getSchemaType(xmlField, fieldValue, session); String stringValue = getValueToWrite(schemaType, fieldValue, (XMLConversionManager) session.getDatasourcePlatform().getConversionManager(),namespaceResolver); XPathFragment groupingFragment = marshalRecord.openStartGroupingElements(namespaceResolver); if (xPathFragment.isAttribute()) { marshalRecord.attribute(xPathFragment, namespaceResolver, stringValue); marshalRecord.closeStartGroupingElements(groupingFragment); } else { marshalRecord.closeStartGroupingElements(groupingFragment); marshalRecord.characters(stringValue); } return true; }
public boolean marshal(XPathFragment xPathFragment, MarshalRecord marshalRecord, Object object, AbstractSession session, NamespaceResolver namespaceResolver) { Object value = xmlChoiceCollectionMapping.getAttributeValueFromObject(object); if(value == null) { return false; } ContainerPolicy cp = getContainerPolicy(); Object iterator = cp.iteratorFor(value); if (cp.hasNext(iterator)) { XPathFragment groupingFragment = marshalRecord.openStartGroupingElements(namespaceResolver); marshalRecord.closeStartGroupingElements(groupingFragment); } else { return false; } while(cp.hasNext(iterator)) { Object nextValue = cp.next(iterator, session); marshalSingleValue(xPathFragment, marshalRecord, object, nextValue, session, namespaceResolver, ObjectMarshalContext.getInstance()); } return true; }
public boolean marshal(XPathFragment xPathFragment, MarshalRecord marshalRecord, Object object, AbstractSession session, NamespaceResolver namespaceResolver) { if (xmlCompositeCollectionMapping.isReadOnly()) { return false; } ContainerPolicy cp = getContainerPolicy(); Object collection = xmlCompositeCollectionMapping.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); marshalSingleValue(xPathFragment, marshalRecord, object, objectValue, session, namespaceResolver, ObjectMarshalContext.getInstance()); } return true; }