Class XMLRecord
- java.lang.Object
-
- org.eclipse.persistence.internal.core.sessions.CoreAbstractRecord
-
- org.eclipse.persistence.internal.sessions.AbstractRecord
-
- org.eclipse.persistence.oxm.record.XMLRecord
-
- All Implemented Interfaces:
Serializable
,Cloneable
,Map
,AbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
,AbstractUnmarshalRecord<AbstractSession,DatabaseField,XMLUnmarshaller>
,XMLRecord<AbstractSession>
,Record
- Direct Known Subclasses:
DOMRecord
,UnmarshalRecord
public abstract class XMLRecord extends AbstractRecord implements AbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>, AbstractUnmarshalRecord<AbstractSession,DatabaseField,XMLUnmarshaller>
PUBLIC: Provides a Record/Map API on an XML DOM element.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.eclipse.persistence.internal.sessions.AbstractRecord
AbstractRecord.EntrySet, AbstractRecord.KeySet, AbstractRecord.NoEntry, AbstractRecord.RecordEntry, AbstractRecord.RecordEntryIterator, AbstractRecord.RecordKeyIterator, AbstractRecord.RecordValuesIterator, AbstractRecord.ValuesSet
-
Nested classes/interfaces inherited from interface java.util.Map
Map.Entry<K extends Object,V extends Object>
-
Nested classes/interfaces inherited from interface org.eclipse.persistence.internal.oxm.record.XMLRecord
XMLRecord.Nil
-
-
Field Summary
Fields Modifier and Type Field Description protected Object
currentObject
protected boolean
equalNamespaceResolvers
protected boolean
hasCustomNamespaceMapper
static XMLRecord.Nil
NIL
INTERNAL: Nil: This is used to indicate that this field represents xsi:nil="true"protected AbstractSession
session
protected XMLUnmarshaller
unmarshaller
-
Fields inherited from class org.eclipse.persistence.internal.sessions.AbstractRecord
fields, lookupField, noEntry, nullValueInFields, size, sopObject, values
-
Fields inherited from interface org.eclipse.persistence.internal.oxm.record.XMLRecord
DEFAULT_ATTRIBUTE_GROUP
-
-
Constructor Summary
Constructors Constructor Description XMLRecord()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description List<Namespace>
addExtraNamespacesToNamespaceResolver(Descriptor descriptor, CoreAbstractSession session, boolean allowOverride, boolean ignoreEqualResolvers)
INTERNALboolean
addXsiTypeAndClassIndicatorIfRequired(Descriptor descriptor, Descriptor referenceDescriptor, Field xmlField, boolean isRootElement)
INTERNALboolean
addXsiTypeAndClassIndicatorIfRequired(Descriptor descriptor, Descriptor referenceDescriptor, Field xmlField, Object originalObject, Object obj, boolean wasXMLRoot, boolean isRootElement)
INTERNALvoid
attribute(String namespaceURI, String localName, String qName, String value)
Marshal an attribute for the give namespaceURI, localName, qualifiedName and valuevoid
attributeWithoutQName(String namespaceURI, String localName, String prefix, String value)
Marshal an attribute for the give namespaceURI, localName, preifx and valueabstract void
clear()
PUBLIC: Clear the sub-nodes of the DOM.boolean
contains(Object value)
PUBLIC: Check if the value is contained in the row.protected List<XMLField>
convertToXMLField(List<DatabaseField> databaseFields)
protected XMLField
convertToXMLField(DatabaseField databaseField)
INTERNAL: Convert a DatabaseField to an XMLFieldObject
get(String key)
PUBLIC: Add the field-value pair to the row.Object
get(DatabaseField key)
INTERNAL: Retrieve the value for the field.ConversionManager
getConversionManager()
INTERNALObject
getCurrentObject()
INTERNAL:DocumentPreservationPolicy
getDocPresPolicy()
abstract Document
getDocument()
PUBLIC: Return the document.abstract Node
getDOM()
PUBLIC: Return the DOM.Object
getIndicatingNoEntry(String fieldName)
INTERNAL: Retrieve the value for the field name.XPathQName
getLeafElementType()
INTERNAL:abstract String
getLocalName()
PUBLIC: Get the local name of the context root element.XMLMarshaller
getMarshaller()
INTERNAL:NamespaceResolver
getNamespaceResolver()
char
getNamespaceSeparator()
INTERNAL: The character used to separate the prefix and uri portions when namespaces are presentabstract String
getNamespaceURI()
PUBLIC: Get the namespace URI for the context root element.Object
getOwningObject()
INTERNAL:AbstractSession
getSession()
XMLUnmarshaller
getUnmarshaller()
INTERNAL:boolean
hasCustomNamespaceMapper()
boolean
hasEqualNamespaceResolvers()
boolean
isNamespaceAware()
INTERNAL: Determine if namespaces will be considered during marshal/unmarshal operations.boolean
isXOPPackage()
void
namespaceDeclaration(String prefix, String namespaceURI)
Marshal a namespace declaration for the given prefix and urlObject
put(String key, Object value)
PUBLIC: Add the field-value pair to the row.void
removeExtraNamespacesFromNamespaceResolver(List<Namespace> extraNamespaces, CoreAbstractSession session)
INTERNALString
resolveNamespacePrefix(String prefix)
void
setCurrentObject(Object obj)
INTERNAL:void
setCustomNamespaceMapper(boolean customNamespaceMapper)
void
setDocPresPolicy(DocumentPreservationPolicy policy)
void
setEqualNamespaceResolvers(boolean equalNRs)
void
setLeafElementType(QName leafElementType)
INTERNAL:void
setLeafElementType(XPathQName leafElementType)
INTERNAL:void
setMarshaller(XMLMarshaller marshaller)
INTERNAL:void
setNamespaceResolver(NamespaceResolver nr)
void
setOwningObject(Object owningObject)
INTERNAL:void
setSession(AbstractSession session)
void
setUnmarshaller(XMLUnmarshaller unmarshaller)
INTERNAL:void
setXOPPackage(boolean isXOPPackage)
abstract String
transformToXML()
Return the XML string representation of the DOM.void
writeXsiTypeAttribute(Descriptor descriptor, String typeUri, String typeLocal, String typePrefix, boolean addToNamespaceResolver)
INTERNALvoid
writeXsiTypeAttribute(Descriptor xmlDescriptor, XMLSchemaReference xmlRef, boolean addToNamespaceResolver)
INTERNAL-
Methods inherited from class org.eclipse.persistence.internal.sessions.AbstractRecord
add, clone, containsKey, containsKey, containsKey, containsValue, elements, entrySet, get, getField, getFields, getIndicatingNoEntry, getLookupField, getSopObject, getValues, getValues, getValues, hasNullValueInFields, hasSopObject, isEmpty, keys, keySet, mergeFrom, put, put, putAll, remove, remove, remove, replaceAt, replaceAt, resetSize, setFields, setNullValueInFields, setSopObject, setValues, size, toString, values
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.eclipse.persistence.internal.oxm.record.AbstractMarshalRecord
put
-
Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll
-
-
-
-
Field Detail
-
unmarshaller
protected XMLUnmarshaller unmarshaller
-
currentObject
protected Object currentObject
-
session
protected AbstractSession session
-
hasCustomNamespaceMapper
protected boolean hasCustomNamespaceMapper
-
equalNamespaceResolvers
protected boolean equalNamespaceResolvers
-
NIL
public static final XMLRecord.Nil NIL
INTERNAL: Nil: This is used to indicate that this field represents xsi:nil="true"
-
-
Method Detail
-
get
public Object get(String key)
PUBLIC: Add the field-value pair to the row.- Overrides:
get
in classAbstractRecord
-
put
public Object put(String key, Object value)
PUBLIC: Add the field-value pair to the row.- Overrides:
put
in classAbstractRecord
-
attributeWithoutQName
public void attributeWithoutQName(String namespaceURI, String localName, String prefix, String value)
Marshal an attribute for the give namespaceURI, localName, preifx and value- Specified by:
attributeWithoutQName
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
- Parameters:
namespaceURI
-localName
-prefix
-value
-
-
attribute
public void attribute(String namespaceURI, String localName, String qName, String value)
Marshal an attribute for the give namespaceURI, localName, qualifiedName and value- Specified by:
attribute
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
- Parameters:
namespaceURI
-localName
-qName
-value
-
-
namespaceDeclaration
public void namespaceDeclaration(String prefix, String namespaceURI)
Marshal a namespace declaration for the given prefix and url- Specified by:
namespaceDeclaration
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
- Parameters:
prefix
-namespaceURI
-
-
getLocalName
public abstract String getLocalName()
PUBLIC: Get the local name of the context root element.
-
getNamespaceURI
public abstract String getNamespaceURI()
PUBLIC: Get the namespace URI for the context root element.
-
clear
public abstract void clear()
PUBLIC: Clear the sub-nodes of the DOM.- Specified by:
clear
in interfaceMap
- Overrides:
clear
in classAbstractRecord
-
getDocument
public abstract Document getDocument()
PUBLIC: Return the document.
-
contains
public boolean contains(Object value)
PUBLIC: Check if the value is contained in the row.- Overrides:
contains
in classAbstractRecord
-
getDOM
public abstract Node getDOM()
PUBLIC: Return the DOM.- Specified by:
getDOM
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
-
transformToXML
public abstract String transformToXML()
Return the XML string representation of the DOM.
-
convertToXMLField
protected XMLField convertToXMLField(DatabaseField databaseField)
INTERNAL: Convert a DatabaseField to an XMLField
-
convertToXMLField
protected List<XMLField> convertToXMLField(List<DatabaseField> databaseFields)
-
get
public Object get(DatabaseField key)
INTERNAL: Retrieve the value for the field. If missing null is returned.- Specified by:
get
in interfaceAbstractUnmarshalRecord<AbstractSession,DatabaseField,XMLUnmarshaller>
- Overrides:
get
in classAbstractRecord
-
getIndicatingNoEntry
public Object getIndicatingNoEntry(String fieldName)
INTERNAL: Retrieve the value for the field name.- Overrides:
getIndicatingNoEntry
in classAbstractRecord
-
resolveNamespacePrefix
public String resolveNamespacePrefix(String prefix)
- Specified by:
resolveNamespacePrefix
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
- Specified by:
resolveNamespacePrefix
in interfaceAbstractUnmarshalRecord<AbstractSession,DatabaseField,XMLUnmarshaller>
-
getMarshaller
public XMLMarshaller getMarshaller()
INTERNAL:- Specified by:
getMarshaller
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
-
setMarshaller
public void setMarshaller(XMLMarshaller marshaller)
INTERNAL:- Specified by:
setMarshaller
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
-
getUnmarshaller
public XMLUnmarshaller getUnmarshaller()
INTERNAL:- Specified by:
getUnmarshaller
in interfaceAbstractUnmarshalRecord<AbstractSession,DatabaseField,XMLUnmarshaller>
-
setUnmarshaller
public void setUnmarshaller(XMLUnmarshaller unmarshaller)
INTERNAL:
-
setDocPresPolicy
public void setDocPresPolicy(DocumentPreservationPolicy policy)
-
getDocPresPolicy
public DocumentPreservationPolicy getDocPresPolicy()
-
getOwningObject
public Object getOwningObject()
INTERNAL:- Specified by:
getOwningObject
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
-
setOwningObject
public void setOwningObject(Object owningObject)
INTERNAL:- Specified by:
setOwningObject
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
-
getCurrentObject
public Object getCurrentObject()
INTERNAL:
-
setCurrentObject
public void setCurrentObject(Object obj)
INTERNAL:
-
getLeafElementType
public XPathQName getLeafElementType()
INTERNAL:- Specified by:
getLeafElementType
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
-
setLeafElementType
public void setLeafElementType(XPathQName leafElementType)
INTERNAL:- Specified by:
setLeafElementType
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
-
setLeafElementType
public void setLeafElementType(QName leafElementType)
INTERNAL:- Specified by:
setLeafElementType
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
-
setNamespaceResolver
public void setNamespaceResolver(NamespaceResolver nr)
- Specified by:
setNamespaceResolver
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
-
getNamespaceResolver
public NamespaceResolver getNamespaceResolver()
- Specified by:
getNamespaceResolver
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
-
getSession
public AbstractSession getSession()
- Specified by:
getSession
in interfaceXMLRecord<AbstractSession>
-
setSession
public void setSession(AbstractSession session)
- Specified by:
setSession
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
-
setEqualNamespaceResolvers
public void setEqualNamespaceResolvers(boolean equalNRs)
- Specified by:
setEqualNamespaceResolvers
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
-
hasEqualNamespaceResolvers
public boolean hasEqualNamespaceResolvers()
- Specified by:
hasEqualNamespaceResolvers
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
-
isXOPPackage
public boolean isXOPPackage()
- Specified by:
isXOPPackage
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
-
setXOPPackage
public void setXOPPackage(boolean isXOPPackage)
- Specified by:
setXOPPackage
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
-
isNamespaceAware
public boolean isNamespaceAware()
INTERNAL: Determine if namespaces will be considered during marshal/unmarshal operations.- Specified by:
isNamespaceAware
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
- Specified by:
isNamespaceAware
in interfaceXMLRecord<AbstractSession>
- Since:
- 2.4
-
getNamespaceSeparator
public char getNamespaceSeparator()
INTERNAL: The character used to separate the prefix and uri portions when namespaces are present- Specified by:
getNamespaceSeparator
in interfaceXMLRecord<AbstractSession>
- Since:
- 2.4
-
hasCustomNamespaceMapper
public boolean hasCustomNamespaceMapper()
- Specified by:
hasCustomNamespaceMapper
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
-
setCustomNamespaceMapper
public void setCustomNamespaceMapper(boolean customNamespaceMapper)
- Specified by:
setCustomNamespaceMapper
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
-
addExtraNamespacesToNamespaceResolver
public List<Namespace> addExtraNamespacesToNamespaceResolver(Descriptor descriptor, CoreAbstractSession session, boolean allowOverride, boolean ignoreEqualResolvers)
INTERNAL- Specified by:
addExtraNamespacesToNamespaceResolver
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
- Since:
- EclipseLink 2.5.0
-
addXsiTypeAndClassIndicatorIfRequired
public boolean addXsiTypeAndClassIndicatorIfRequired(Descriptor descriptor, Descriptor referenceDescriptor, Field xmlField, boolean isRootElement)
INTERNAL- Specified by:
addXsiTypeAndClassIndicatorIfRequired
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
- Since:
- EclipseLink 2.5.0
-
addXsiTypeAndClassIndicatorIfRequired
public boolean addXsiTypeAndClassIndicatorIfRequired(Descriptor descriptor, Descriptor referenceDescriptor, Field xmlField, Object originalObject, Object obj, boolean wasXMLRoot, boolean isRootElement)
INTERNAL- Specified by:
addXsiTypeAndClassIndicatorIfRequired
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
- Since:
- EclipseLink 2.5.0
-
removeExtraNamespacesFromNamespaceResolver
public void removeExtraNamespacesFromNamespaceResolver(List<Namespace> extraNamespaces, CoreAbstractSession session)
INTERNAL- Specified by:
removeExtraNamespacesFromNamespaceResolver
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
- Since:
- EclipseLink 2.5.0
-
writeXsiTypeAttribute
public void writeXsiTypeAttribute(Descriptor descriptor, String typeUri, String typeLocal, String typePrefix, boolean addToNamespaceResolver)
INTERNAL- Specified by:
writeXsiTypeAttribute
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
- Since:
- EclipseLink 2.5.0
-
writeXsiTypeAttribute
public void writeXsiTypeAttribute(Descriptor xmlDescriptor, XMLSchemaReference xmlRef, boolean addToNamespaceResolver)
INTERNAL- Specified by:
writeXsiTypeAttribute
in interfaceAbstractMarshalRecord<AbstractSession,DatabaseField,XMLMarshaller,NamespaceResolver>
- Since:
- EclipseLink 2.5.0
-
getConversionManager
public ConversionManager getConversionManager()
INTERNAL- Specified by:
getConversionManager
in interfaceXMLRecord<AbstractSession>
- Since:
- EclipseLink 2.6.0
-
-