blob: b75eaf777bdf65a43488895a5a7d5b7a7086900b [file] [log] [blame]
/*******************************************************************************
* 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);
}