/******************************************************************************* | |
* Copyright (c) 1998, 2013 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: | |
* Oracle - initial API and implementation from Oracle TopLink | |
******************************************************************************/ | |
package org.eclipse.persistence.internal.oxm.record; | |
import org.eclipse.persistence.internal.oxm.ContainerValue; | |
import org.eclipse.persistence.internal.oxm.Reference; | |
import org.eclipse.persistence.internal.oxm.mappings.Mapping; | |
/** | |
* The UnmarshalContext allows mappings to be unmarshalled differently depending | |
* on the type of object. An UnmarshalRecord maintains a reference to a single | |
* UnmarshalContext. | |
*/ | |
public interface UnmarshalContext { | |
/** | |
* An event indicating that startElement has been called on the unmarshalRecord. | |
* @param unmarshalRecord The UnmarshalRecord that received the startElement call. | |
*/ | |
public void startElement(UnmarshalRecord unmarshalRecord); | |
/** | |
* An event indicating that characters has been called on the unmarshalRecord. | |
* @param unmarshalRecord The UnmarshalRecord that received the characters call. | |
*/ | |
public void characters(UnmarshalRecord unmarshalRecord); | |
/** | |
* An event indicating that endElement has been called on the unmarshalRecord. | |
* @param unmarshalRecord The UnmarshalRecord that received the endElement call. | |
*/ | |
public void endElement(UnmarshalRecord unmarshalRecord); | |
/** | |
* The UnmarshalContext is responsible for assigning values to the object being | |
* built. | |
* @param unmarshalRecord | |
* @param value | |
* @param mapping | |
*/ | |
public void setAttributeValue(UnmarshalRecord unmarshalRecord, Object value, Mapping mapping); | |
/** | |
* When a collection mapping is processed the UnmarshalContext is responsible for | |
* handling the values one at a time. | |
* @param unmarshalRecord | |
* @param containerValue A container object such as a java.util.ArrayList, to which | |
* the value will be added. | |
* @param value The value to be added to the container, | |
*/ | |
public void addAttributeValue(UnmarshalRecord unmarshalRecord, ContainerValue containerValue, Object value); | |
/** | |
* When a collection mapping is processed the UnmarshalContext is responsible for | |
* handling the values one at a time. | |
* @param unmarshalRecord | |
* @param containerValue A container object such as a java.util.ArrayList, to which | |
* the value will be added. | |
* @param value The value to be added to the container, | |
* @param collection | |
*/ | |
public void addAttributeValue(UnmarshalRecord unmarshalRecord, ContainerValue containerValue, Object value, Object collection); | |
/* | |
* When a Reference is built the UnmarshalContext is given the ability to perform | |
* further processing on it. | |
* @param reference | |
*/ | |
public void reference(Reference reference); | |
/** | |
* This method is called when unmapped content (XML content that does not correspond to | |
* any specified mapping, policy, etc.) is encountered during the unmarshal process. | |
* @param unmarshalRecord The UnmarshalRecord that encountered the unmapped content . | |
*/ | |
public void unmappedContent(UnmarshalRecord unmarshalRecord); | |
} |