Package com.fasterxml.aalto.out
Class OutputElement
- java.lang.Object
-
- com.fasterxml.aalto.out.OutputElement
-
final class OutputElement extends java.lang.ObjectSimple container for information regarding an open element within stream writer output.Note: these elements are designed to be reused within context of a single document output, ie. they are owned by the stream writer, and can be recycled by it, as necessary.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classOutputElement.PrefixState
-
Field Summary
Fields Modifier and Type Field Description private java.lang.String_defaultNsURINamespace context end application may have supplied, and that (if given) should be used to augment explicitly defined bindings.private WName_namePrefixed name used for serialization.private NsBinder_nsBinderprivate OutputElement_parentReference to either the parent (enclosing element) of this element, when part of active output context; or link to next reusable unused element after this one (if not part of active context).private java.lang.String_uriNamespace of the element, whatever prefix part of_namemaps to.(package private) static byteBYTE_GT(package private) static byteBYTE_LT(package private) static byteBYTE_SLASH
-
Constructor Summary
Constructors Modifier Constructor Description privateOutputElement()privateOutputElement(OutputElement parent, WName name, java.lang.String uri, NsBinder binder)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddPrefix(java.lang.String prefix, java.lang.String uri)protected voidaddToPool(OutputElement poolHead)Method called to temporarily link this instance to a pool, to allow reusing of instances with the same reader.OutputElement.PrefixStatecheckPrefixValidity(java.lang.String prefix, java.lang.String nsURI, javax.xml.namespace.NamespaceContext rootNsContext)Method that verifies that passed-in non-empty prefix indeed maps to specified non-empty namespace URI; and depending on how it goes returns a status for caller.protected OutputElementcreateChild(WName name)Simplest factory method, which gets called when non-namespace element output method is called.protected OutputElementcreateChild(WName name, java.lang.String uri)Full factory method, used for 'normal' namespace qualified output methods.protected static OutputElementcreateRoot()java.lang.StringgeneratePrefix(javax.xml.namespace.NamespaceContext rootNsContext, java.lang.String prefixBase, int[] seqArr)java.lang.StringgetDefaultNsURI()java.lang.StringgetExplicitPrefix(java.lang.String uri, javax.xml.namespace.NamespaceContext rootNsContext)Method similar togetPrefix(java.lang.String), but one that will not accept the default namespace, only an explicit one.java.lang.StringgetLocalName()WNamegetName()java.lang.StringgetNameDesc()java.lang.StringgetNamespaceURI()java.lang.StringgetNamespaceURI(java.lang.String prefix)java.lang.StringgetNonNullNamespaceURI()java.lang.StringgetNonNullPrefix()OutputElementgetParent()java.lang.StringgetPrefix(java.lang.String uri)java.util.Iterator<java.lang.String>getPrefixes(java.lang.String uri, javax.xml.namespace.NamespaceContext rootNsContext)javax.xml.namespace.QNamegetQName()booleanhasEmptyDefaultNs()inthashCode()booleanhasPrefix()booleanisPrefixBoundTo(java.lang.String prefix, java.lang.String nsURI, javax.xml.namespace.NamespaceContext rootNsContext)booleanisPrefixUnbound(java.lang.String prefix, javax.xml.namespace.NamespaceContext rootNsContext)booleanisRoot()voidrelink(OutputElement parent)Method called to reuse a recycled instance, as is, with same name.private voidrelink(OutputElement parent, WName name, java.lang.String uri)Method called to reuse a pooled instance, but with different nameprotected OutputElementreuseAsChild(OutputElement parent, WName name)protected OutputElementreuseAsChild(OutputElement parent, WName name, java.lang.String nsURI)voidsetDefaultNsURI(java.lang.String uri)
-
-
-
Field Detail
-
BYTE_LT
static final byte BYTE_LT
- See Also:
- Constant Field Values
-
BYTE_GT
static final byte BYTE_GT
- See Also:
- Constant Field Values
-
BYTE_SLASH
static final byte BYTE_SLASH
- See Also:
- Constant Field Values
-
_parent
private OutputElement _parent
Reference to either the parent (enclosing element) of this element, when part of active output context; or link to next reusable unused element after this one (if not part of active context).
-
_name
private WName _name
Prefixed name used for serialization.
-
_uri
private java.lang.String _uri
Namespace of the element, whatever prefix part of_namemaps to. Non-final to allow reuse.
-
_defaultNsURI
private java.lang.String _defaultNsURI
Namespace context end application may have supplied, and that (if given) should be used to augment explicitly defined bindings.
-
_nsBinder
private NsBinder _nsBinder
-
-
Constructor Detail
-
OutputElement
private OutputElement()
-
OutputElement
private OutputElement(OutputElement parent, WName name, java.lang.String uri, NsBinder binder)
-
-
Method Detail
-
createRoot
protected static OutputElement createRoot()
-
createChild
protected OutputElement createChild(WName name)
Simplest factory method, which gets called when non-namespace element output method is called. It is, then, assumed to use the default namespce.
-
createChild
protected OutputElement createChild(WName name, java.lang.String uri)
Full factory method, used for 'normal' namespace qualified output methods.
-
reuseAsChild
protected OutputElement reuseAsChild(OutputElement parent, WName name)
- Returns:
- New head of the recycle pool
-
reuseAsChild
protected OutputElement reuseAsChild(OutputElement parent, WName name, java.lang.String nsURI)
-
relink
public void relink(OutputElement parent)
Method called to reuse a recycled instance, as is, with same name.
-
relink
private void relink(OutputElement parent, WName name, java.lang.String uri)
Method called to reuse a pooled instance, but with different name
-
addToPool
protected void addToPool(OutputElement poolHead)
Method called to temporarily link this instance to a pool, to allow reusing of instances with the same reader.
-
getParent
public OutputElement getParent()
-
isRoot
public boolean isRoot()
-
getName
public WName getName()
-
getLocalName
public java.lang.String getLocalName()
-
getNonNullPrefix
public java.lang.String getNonNullPrefix()
-
hasPrefix
public boolean hasPrefix()
-
getNameDesc
public java.lang.String getNameDesc()
- Returns:
- String presentation of the fully-qualified name, in "prefix:localName" format (no URI). Useful for error and debugging messages.
-
getNamespaceURI
public java.lang.String getNamespaceURI()
-
getNonNullNamespaceURI
public java.lang.String getNonNullNamespaceURI()
-
getDefaultNsURI
public java.lang.String getDefaultNsURI()
-
hasEmptyDefaultNs
public boolean hasEmptyDefaultNs()
-
getQName
public javax.xml.namespace.QName getQName()
-
setDefaultNsURI
public void setDefaultNsURI(java.lang.String uri)
-
generatePrefix
public java.lang.String generatePrefix(javax.xml.namespace.NamespaceContext rootNsContext, java.lang.String prefixBase, int[] seqArr)
-
addPrefix
public void addPrefix(java.lang.String prefix, java.lang.String uri)
-
getNamespaceURI
public java.lang.String getNamespaceURI(java.lang.String prefix)
-
getPrefix
public java.lang.String getPrefix(java.lang.String uri)
-
getPrefixes
public java.util.Iterator<java.lang.String> getPrefixes(java.lang.String uri, javax.xml.namespace.NamespaceContext rootNsContext)
-
getExplicitPrefix
public java.lang.String getExplicitPrefix(java.lang.String uri, javax.xml.namespace.NamespaceContext rootNsContext)Method similar togetPrefix(java.lang.String), but one that will not accept the default namespace, only an explicit one. Usually used when trying to find a prefix for attributes.
-
checkPrefixValidity
public OutputElement.PrefixState checkPrefixValidity(java.lang.String prefix, java.lang.String nsURI, javax.xml.namespace.NamespaceContext rootNsContext)
Method that verifies that passed-in non-empty prefix indeed maps to specified non-empty namespace URI; and depending on how it goes returns a status for caller.- Returns:
- OK, if passed-in prefix matches matched-in namespace URI in current scope; UNBOUND if it's not bound to anything, and MISBOUND if it's bound to another URI.
-
isPrefixBoundTo
public boolean isPrefixBoundTo(java.lang.String prefix, java.lang.String nsURI, javax.xml.namespace.NamespaceContext rootNsContext)
-
isPrefixUnbound
public boolean isPrefixUnbound(java.lang.String prefix, javax.xml.namespace.NamespaceContext rootNsContext)
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
-