blob: 739bedcbf72bb0c6c8e09636f97ed1b79eb16d41 [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.ArrayList;
import java.util.List;
import javax.xml.namespace.QName;
import org.eclipse.persistence.internal.core.helper.CoreField;
import org.eclipse.persistence.internal.core.sessions.CoreAbstractSession;
import org.eclipse.persistence.internal.oxm.Marshaller;
import org.eclipse.persistence.internal.oxm.Namespace;
import org.eclipse.persistence.internal.oxm.NamespaceResolver;
import org.eclipse.persistence.internal.oxm.XMLConversionManager;
import org.eclipse.persistence.internal.oxm.XPathFragment;
import org.eclipse.persistence.internal.oxm.XPathNode;
import org.eclipse.persistence.oxm.record.MarshalRecord.CycleDetectionStack;
import org.eclipse.persistence.core.queries.CoreAttributeGroup;
import org.w3c.dom.Node;
/**
* This class represents marshal record behaviour that is specific to the SAX
* platform.
*/
public interface MarshalRecord<
ABSTRACT_SESSION extends CoreAbstractSession,
FIELD extends CoreField,
MARSHALLER extends Marshaller,
NAMESPACE_RESOLVER extends NamespaceResolver> extends AbstractMarshalRecord<ABSTRACT_SESSION, FIELD, MARSHALLER, NAMESPACE_RESOLVER> {
public void add(FIELD field, Object value);
public void addGroupingElement(XPathNode holderXPathNode);
public void afterContainmentMarshal(Object object, Object value);
public void attribute(String namespaceURI, String localPart,
String qualifiedName, String value);
public void attribute(XPathFragment nextFragment,
NAMESPACE_RESOLVER namespaceResolver, Object fieldValue,
QName schemaType);
public void attribute(XPathFragment xPathFragment,
NAMESPACE_RESOLVER namespaceResolver, String value);
public void attributeWithoutQName(String namespaceURI,
String localName, String prefix, String value);
public void beforeContainmentMarshal(Object value);
public void cdata(String string);
public void characters(QName schemaType, Object objectValue,
String mimeType, boolean b);
public void characters(String c_id);
public void closeStartElement();
public void closeStartGroupingElements(XPathFragment groupingFragment);
public void emptyAttribute(XPathFragment xPathFragment,
NAMESPACE_RESOLVER namespaceResolver);
public boolean emptyCollection(XPathFragment xPathFragment,
NAMESPACE_RESOLVER namespaceResolver, boolean b);
public void emptyComplex(XPathFragment xPathFragment,
NAMESPACE_RESOLVER namespaceResolver);
public void emptySimple(NAMESPACE_RESOLVER namespaceResolver);
public void endCollection();
public void endElement(XPathFragment xPathFragment,
NAMESPACE_RESOLVER namespaceResolver);
public void endPrefixMapping(String prefix);
public void flush();
public void forceValueWrapper();
public CoreAttributeGroup getCurrentAttributeGroup();
public CycleDetectionStack<Object> getCycleDetectionStack();
public ArrayList<XPathNode> getGroupingElements();
public XPathFragment getTextWrapperFragment();
public String getValueToWrite(QName schemaType, Object fieldValue,
XMLConversionManager conversionManager);
public boolean hasCustomNamespaceMapper();
public boolean isWrapperAsCollectionName();
public boolean isXOPPackage();
public void namespaceDeclaration(String generatedPrefix, String namespaceURI);
public void nilComplex(XPathFragment xPathFragment,
NAMESPACE_RESOLVER namespaceResolver);
public void nilSimple(NAMESPACE_RESOLVER namespaceResolver);
public void node(Node item, NAMESPACE_RESOLVER namespaceResolver);
public void openStartElement(XPathFragment xPathFragment,
NAMESPACE_RESOLVER namespaceResolver);
public XPathFragment openStartGroupingElements(
NAMESPACE_RESOLVER namespaceResolver);
public void popAttributeGroup();
public void predicateAttribute(XPathFragment anXPathFragment,
NAMESPACE_RESOLVER namespaceResolver);
public void pushAttributeGroup(CoreAttributeGroup group);
public void removeExtraNamespacesFromNamespaceResolver(List<Namespace> extraNamespaces, CoreAbstractSession session);
public void removeGroupingElement(XPathNode holderXPathNode);
public void setGroupingElement(ArrayList<XPathNode> object);
public void setLeafElementType(QName leafElementType);
public void setMarshaller(MARSHALLER marshaller);
public void startCollection();
public void startPrefixMapping(String prefix, String uri);
}