/******************************************************************************* * Copyright (c) 2011, 2015 Oracle and/or its affiliates. All rights reserved. * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 * which accompanies this distribution. * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html * and the Eclipse Distribution License is available at * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * Blaise Doughan - 2.2 - initial implementation ******************************************************************************/ package org.eclipse.persistence.internal.oxm.record.deferred; import org.eclipse.persistence.internal.oxm.XMLCompositeCollectionMappingNodeValue; import org.eclipse.persistence.internal.oxm.XPathFragment; import org.eclipse.persistence.internal.oxm.mappings.CompositeCollectionMapping; import org.eclipse.persistence.internal.oxm.mappings.Descriptor; import org.eclipse.persistence.internal.oxm.record.UnmarshalRecord; import org.xml.sax.Attributes; import org.xml.sax.SAXException; public class CompositeCollectionMappingContentHandler extends CompositeMappingContentHandler { /** The NullCapableValue that passed control to this handler */ private XMLCompositeCollectionMappingNodeValue nodeValue; /** * @param parentRecord * @param aNodeValue * @param aNullPolicy */ public CompositeCollectionMappingContentHandler(UnmarshalRecord parentRecord, // XMLCompositeCollectionMappingNodeValue aNodeValue, CompositeCollectionMapping aMapping, // Attributes atts, XPathFragment aFragment, Descriptor aDescriptor) { super(parentRecord, aMapping, atts, aMapping.getNullPolicy(), aFragment, aDescriptor); nodeValue = aNodeValue; } @Override protected XMLCompositeCollectionMappingNodeValue getNodeValue() { return nodeValue; } @Override protected void processEmptyElement() throws SAXException { // Remove original startElement event as it has been precluded by the nodeValue call below getEvents().remove(0); executeEvents(getParent()); } }