blob: 887953059b90660ccaedadfaa418eaa02b04d270 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 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 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.XPathQName;
import org.eclipse.persistence.internal.oxm.mappings.Descriptor;
import org.eclipse.persistence.internal.oxm.mappings.Field;
import org.eclipse.persistence.oxm.schema.XMLSchemaReference;
import org.w3c.dom.Node;
/**
* This class represents marshal record behaviour that is common to all XML
* platforms.
*/
public interface AbstractMarshalRecord<
ABSTRACT_SESSION extends CoreAbstractSession,
FIELD extends CoreField,
MARSHALLER extends Marshaller,
NAMESPACE_RESOLVER extends NamespaceResolver> extends XMLRecord<ABSTRACT_SESSION> {
public List addExtraNamespacesToNamespaceResolver(Descriptor descriptor, CoreAbstractSession session, boolean allowOverride, boolean ignoreEqualResolvers);
public boolean addXsiTypeAndClassIndicatorIfRequired(Descriptor descriptor, Descriptor referenceDescriptor, Field xmlField, boolean isRootElement);
public boolean addXsiTypeAndClassIndicatorIfRequired(Descriptor descriptor, Descriptor referenceDescriptor, Field xmlField,Object originalObject, Object obj, boolean wasXMLRoot, boolean isRootElement);
public void attribute(String namespaceURI, String localName, String qualifiedName, String value);
public void attributeWithoutQName(String namespaceURI, String localName, String prefix, String value);
public Node getDOM();
public XPathQName getLeafElementType();
public MARSHALLER getMarshaller();
public NAMESPACE_RESOLVER getNamespaceResolver();
public Object getOwningObject();
public boolean hasCustomNamespaceMapper();
public boolean hasEqualNamespaceResolvers();
/**
* Determine if namespaces will be considered during marshal/unmarshal operations.
*/
public boolean isNamespaceAware();
public boolean isXOPPackage();
public void namespaceDeclaration(String prefix, String typeUri);
public Object put(FIELD field, Object object);
public void removeExtraNamespacesFromNamespaceResolver(List<Namespace> extraNamespaces, CoreAbstractSession session);
public String resolveNamespacePrefix(String prefix);
public void setCustomNamespaceMapper(boolean customNamespaceMapper);
public void setEqualNamespaceResolvers(boolean equalNRs);
public void setLeafElementType(QName leafElementType);
public void setLeafElementType(XPathQName leafElementType);
public void setMarshaller(MARSHALLER marshaller);
public void setNamespaceResolver(NAMESPACE_RESOLVER namespaceResolver);
public void setOwningObject(Object owningObject);
public void setSession(ABSTRACT_SESSION session);
public void setXOPPackage(boolean isXOPPackage);
public void writeXsiTypeAttribute(Descriptor descriptor, String typeUri, String typeLocal, String typePrefix, boolean addToNamespaceResolver);
public void writeXsiTypeAttribute(Descriptor xmlDescriptor, XMLSchemaReference xmlRef, boolean addToNamespaceResolver);
}