blob: e54de5c54d4a0276523ced78cf6eb85ccfda1811 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2012, 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:
* Blaise Doughan - 2.5 - initial implementation
******************************************************************************/
package org.eclipse.persistence.internal.oxm.record;
import java.util.List;
import java.util.Map;
import javax.xml.namespace.QName;
import org.eclipse.persistence.core.queries.CoreAttributeGroup;
import org.eclipse.persistence.internal.core.helper.CoreField;
import org.eclipse.persistence.internal.core.sessions.CoreAbstractSession;
import org.eclipse.persistence.internal.oxm.ContainerValue;
import org.eclipse.persistence.internal.oxm.IDResolver;
import org.eclipse.persistence.internal.oxm.NodeValue;
import org.eclipse.persistence.internal.oxm.NullCapableValue;
import org.eclipse.persistence.internal.oxm.ObjectBuilder;
import org.eclipse.persistence.internal.oxm.Reference;
import org.eclipse.persistence.internal.oxm.ReferenceResolver;
import org.eclipse.persistence.internal.oxm.Root;
import org.eclipse.persistence.internal.oxm.SAXFragmentBuilder;
import org.eclipse.persistence.internal.oxm.Unmarshaller;
import org.eclipse.persistence.internal.oxm.XPathFragment;
import org.eclipse.persistence.internal.oxm.XPathNode;
import org.eclipse.persistence.internal.oxm.XPathQName;
import org.eclipse.persistence.internal.oxm.mappings.Descriptor;
import org.eclipse.persistence.internal.oxm.mappings.Mapping;
import org.eclipse.persistence.internal.oxm.record.namespaces.UnmarshalNamespaceResolver;
import org.eclipse.persistence.internal.oxm.unmapped.DefaultUnmappedContentHandler;
import org.eclipse.persistence.internal.oxm.unmapped.UnmappedContentHandler;
import org.eclipse.persistence.oxm.record.DOMRecord;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.ext.LexicalHandler;
/**
* This class represents unmarshal record behaviour that is specific to the SAX
* platform.
*/
public interface UnmarshalRecord<
ABSTRACT_SESSION extends CoreAbstractSession,
FIELD extends CoreField,
ID_RESOLVER extends IDResolver,
TREE_OBJECT_BUILDER extends ObjectBuilder,
UNMARSHALLER extends Unmarshaller> extends AbstractUnmarshalRecord<ABSTRACT_SESSION, FIELD, UNMARSHALLER>, ExtendedContentHandler, LexicalHandler {
public static final UnmappedContentHandler DEFAULT_UNMAPPED_CONTENT_HANDLER = new DefaultUnmappedContentHandler();
public void addAttributeValue(ContainerValue containerValue, Object value);
public void addAttributeValue(ContainerValue containerValue, Object value, Object collection);
public Root createRoot();
public void endUnmappedElement(String uri, String localName, String name) throws SAXException;
public NodeValue getAttributeChildNodeValue(String namespace, String localName);
public Attributes getAttributes();
public CharSequence getCharacters();
public UnmarshalRecord getChildRecord();
public UnmarshalRecord getChildUnmarshalRecord(TREE_OBJECT_BUILDER targetObjectBuilder);
public Object getContainerInstance(ContainerValue containerValue);
public Object getContainerInstance(ContainerValue containerValue, boolean b);
public Object getCurrentObject();
public Descriptor getDescriptor();
/**
* Gets the encoding for this document. Only set on the root-level UnmarshalRecord
* @return a String representing the encoding for this doc
*/
public String getEncoding();
public SAXFragmentBuilder getFragmentBuilder();
public XPathQName getLeafElementType();
public int getLevelIndex();
public String getLocalName();
public String getNoNamespaceSchemaLocation();
public XPathNode getNonAttributeXPathNode(String namespaceURI, String localName, String qName, Attributes attributes);
public List<NullCapableValue> getNullCapableValues();
public org.eclipse.persistence.internal.oxm.record.UnmarshalRecord getParentRecord();
public Map<String, String> getPrefixesForFragment();
public ReferenceResolver getReferenceResolver();
public String getRootElementName();
public String getRootElementNamespaceUri();
public String getSchemaLocation();
public XPathFragment getTextWrapperFragment();
public DOMRecord getTransformationRecord();
public QName getTypeQName();
public UnmarshalContext getUnmarshalContext();
public UNMARSHALLER getUnmarshaller();
public UnmarshalNamespaceResolver getUnmarshalNamespaceResolver();
/**
* Gets the XML Version for this document. Only set on the root-level
* UnmarshalRecord, if supported by the parser.
*/
public String getVersion();
public XMLReader getXMLReader();
public XPathNode getXPathNode();
public UnmarshalRecord initialize(TREE_OBJECT_BUILDER objectBuilder);
public void initializeRecord(Mapping mapping) throws SAXException;
public boolean isBufferCDATA();
public boolean isNil();
public boolean isSelfRecord();
public void reference(Reference reference);
public void removeNullCapableValue(NullCapableValue nullCapableValue);
public void resetStringBuffer();
public String resolveNamespaceUri(String namespaceURI);
public void resolveReferences(ABSTRACT_SESSION session, ID_RESOLVER idResolver);
public void setAttributes(Attributes atts);
public void setAttributeValue(Object object, Mapping mapping);
public void setAttributeValueNull(ContainerValue containerValue);
public void setChildRecord(UnmarshalRecord unmarshalRecord);
public void setContainerInstance(int index, Object containerInstance);
public void setCurrentObject(Object object);
public void setFragmentBuilder(SAXFragmentBuilder fragmentBuilder);
public void setLeafElementType(QName leafElementType);
public void setLocalName(String localName);
public void setNil(boolean isNil);
public void setParentRecord(UnmarshalRecord unmarshalRecord);
public void setReferenceResolver(ReferenceResolver referenceResolver);
public void setRootElementName(String rootElementName);
public void setRootElementNamespaceUri(String rootElementNamespaceUri);
public void setSelfRecord(boolean isSelfRecord);
public void setSession(ABSTRACT_SESSION session);
public void setTextWrapperFragment(XPathFragment textWrapperFragment);
public void setTransformationRecord(DOMRecord transformationRecord);
public void setTypeQName(QName qname);
public void setUnmarshalContext(UnmarshalContext unmarshalContext);
public void setUnmarshaller(UNMARSHALLER unmarshaller);
public void setUnmarshalNamespaceResolver(UnmarshalNamespaceResolver unmarshalNamespaceResolver);
public void setXMLReader(XMLReader xmlReader);
public void unmappedContent();
public CoreAttributeGroup getUnmarshalAttributeGroup();
public void setUnmarshalAttributeGroup(CoreAttributeGroup group);
}