Top Description Inners Fields Constructors Methods
com.ctc.wstx.sw

public final Class SimpleOutputElement

extends OutputElementBase
Class Inheritance
Imports
java.util.*, javax.xml.namespace.NamespaceContext, .QName, javax.xml.stream.XMLStreamException, com.ctc.wstx.compat.QNameCreator, com.ctc.wstx.util.BijectiveNsMap

Class that encapsulates information about a specific element in virtual output stack for namespace-aware writers. It provides support for URI-to-prefix mappings as well as namespace mapping generation.

One noteworthy feature of the class is that it is designed to allow "short-term recycling", ie. instances can be reused within context of a simple document output. While reuse/recycling of such lightweight object is often useless or even counter productive, here it may be worth using, due to simplicity of the scheme (basically using a very simple free-elements linked list).

Nested and Inner Type Summary

Modifier and TypeClass and Description
pack-priv static class
SimpleOutputElement.AttrName

Simple key class used to represent two-piece (attribute) names; first part being optional (URI), and second non-optional (local name).

Field Summary

Modifier and TypeField and Description
protected HashSet<SimpleOutputElement.AttrName>
mAttrSet

Map used to check for duplicate attribute declarations, if feature is enabled.

protected String
mLocalName

Local name of the element.

protected SimpleOutputElement
mParent

Reference to the parent element, element enclosing this element.

protected String
mPrefix

Prefix that is used for the element.

protected String
mURI

Namespace of the element, whatever mPrefix maps to.

Inherited from com.ctc.wstx.sw.OutputElementBase:
DEFAULT_XML_BINDINGSmDefaultNsURImNsMappingmNsMapSharedmRootNsContextPREFIX_MISBOUNDPREFIX_OKPREFIX_UNBOUNDsXmlNsPrefixsXmlNsURI

Constructor Summary

AccessConstructor and Description
private
SimpleOutputElement()

Constructor for the virtual root element

private

Method Summary

Modifier and TypeMethod and Description
protected void
addToPool(SimpleOutputElement poolHead)

Method called to temporarily link this instance to a pool, to allow reusing of instances with the same reader.

public void
checkAttrWrite(String nsURI, String localName)

protected SimpleOutputElement
createChild(String localName)

Simplest factory method, which gets called when a 1-argument element output method is called.

protected SimpleOutputElement
createChild(String prefix, String localName, String uri)

Full factory method, used for 'normal' namespace qualified output methods.

public static SimpleOutputElement
public String
public QName
public String

Returns:

String presentation of the fully-qualified name, in "prefix:localName" format (no URI). Useful for error and debugging messages.
getNameDesc
()

Implements abstract com.ctc.wstx.sw.OutputElementBase.getNameDesc.

public String
public SimpleOutputElement
public String
public boolean
protected SimpleOutputElement

Returns:

New head of the recycle pool
reuseAsChild
(SimpleOutputElement parent, String localName)

protected SimpleOutputElement
reuseAsChild(SimpleOutputElement parent, String prefix, String localName, String uri)

public void
public void
setPrefix(String prefix)

protected final void
setRootNsContext(NamespaceContext ctxt)

Implements abstract com.ctc.wstx.sw.OutputElementBase.setRootNsContext.

Note

this method can and will only be called before outputting the root element.

Inherited from com.ctc.wstx.sw.OutputElementBase:
addPrefixgenerateMappinggetDefaultNsUrigetExplicitPrefixgetNamespaceURIgetPrefixgetPrefixesisPrefixValidrelinkthrowOutputError

Field Detail

mAttrSetback to summary
protected HashSet<SimpleOutputElement.AttrName> mAttrSet

Map used to check for duplicate attribute declarations, if feature is enabled.

mLocalNameback to summary
protected String mLocalName

Local name of the element. Non-final only to allow reuse.

mParentback to summary
protected SimpleOutputElement mParent

Reference to the parent element, element enclosing this element. Null for root element. Non-final only to allow temporary pooling (on per-writer basis, to keep these short-lived).

mPrefixback to summary
protected String mPrefix

Prefix that is used for the element. Can not be final, since sometimes it needs to be dynamically generated and bound after creating the element instance.

mURIback to summary
protected String mURI

Namespace of the element, whatever mPrefix maps to. Non-final only to allow reuse.

Constructor Detail

SimpleOutputElementback to summary
private SimpleOutputElement()

Constructor for the virtual root element

SimpleOutputElementback to summary
private SimpleOutputElement(SimpleOutputElement parent, String prefix, String localName, String uri, BijectiveNsMap ns)

Method Detail

addToPoolback to summary
protected void addToPool(SimpleOutputElement poolHead)

Method called to temporarily link this instance to a pool, to allow reusing of instances with the same reader.

checkAttrWriteback to summary
public void checkAttrWrite(String nsURI, String localName) throws XMLStreamException
createChildback to summary
protected SimpleOutputElement createChild(String localName)

Simplest factory method, which gets called when a 1-argument element output method is called. It is, then, assumed to use the default namespce.

createChildback to summary
protected SimpleOutputElement createChild(String prefix, String localName, String uri)

Full factory method, used for 'normal' namespace qualified output methods.

createRootback to summary
public static SimpleOutputElement createRoot()
getLocalNameback to summary
public String getLocalName()
getNameback to summary
public QName getName()
getNameDescback to summary
public String getNameDesc()

Implements abstract com.ctc.wstx.sw.OutputElementBase.getNameDesc.

Returns:String

String presentation of the fully-qualified name, in "prefix:localName" format (no URI). Useful for error and debugging messages.

Annotations
@Override
getNamespaceURIback to summary
public String getNamespaceURI()
getParentback to summary
public SimpleOutputElement getParent()
getPrefixback to summary
public String getPrefix()
isRootback to summary
public boolean isRoot()

Implements abstract com.ctc.wstx.sw.OutputElementBase.isRoot.

Annotations
@Override
reuseAsChildback to summary
protected SimpleOutputElement reuseAsChild(SimpleOutputElement parent, String localName)
Returns:SimpleOutputElement

New head of the recycle pool

reuseAsChildback to summary
protected SimpleOutputElement reuseAsChild(SimpleOutputElement parent, String prefix, String localName, String uri)
setDefaultNsUriback to summary
public void setDefaultNsUri(String uri)

Implements abstract com.ctc.wstx.sw.OutputElementBase.setDefaultNsUri.

Annotations
@Override
setPrefixback to summary
public void setPrefix(String prefix)
setRootNsContextback to summary
protected final void setRootNsContext(NamespaceContext ctxt)

Implements abstract com.ctc.wstx.sw.OutputElementBase.setRootNsContext.

Note

this method can and will only be called before outputting the root element.

Annotations
@Override
com.ctc.wstx.sw back to summary

pack-priv final Class SimpleOutputElement.AttrName

extends Object
implements Comparable<SimpleOutputElement.AttrName>
Class Inheritance
All Implemented Interfaces
java.lang.Comparable

Simple key class used to represent two-piece (attribute) names; first part being optional (URI), and second non-optional (local name).

Field Summary

Modifier and TypeField and Description
pack-priv final int
mHashCode

Let's cache the hash code, since although hash calculation is fast, hash code is needed a lot as this is always used as a HashSet/TreeMap key.

pack-priv final String
pack-priv final String

Constructor Summary

AccessConstructor and Description
public
AttrName(String nsURI, String localName)

Method Summary

Modifier and TypeMethod and Description
public int
compareTo(SimpleOutputElement.AttrName
the object to be compared.
other
)

Implements java.lang.Comparable.compareTo.

Compares this object with the specified object for order.

public boolean
equals(Object
the reference object with which to compare.
o
)

Overrides java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

public int
hashCode()

Overrides java.lang.Object.hashCode.

Returns a hash code value for this object.

public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.

Inherited from java.lang.Object:
clonefinalizegetClassnotifynotifyAllwaitwaitwait

Field Detail

mHashCodeback to summary
pack-priv final int mHashCode

Let's cache the hash code, since although hash calculation is fast, hash code is needed a lot as this is always used as a HashSet/TreeMap key.

mLocalNameback to summary
pack-priv final String mLocalName
mNsURIback to summary
pack-priv final String mNsURI

Constructor Detail

AttrNameback to summary
public AttrName(String nsURI, String localName)

Method Detail

compareToback to summary
public int compareTo(SimpleOutputElement.AttrName other)

Implements java.lang.Comparable.compareTo.

Doc from java.lang.Comparable.compareTo.

Compares this object with the specified object for order. Returns a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.

The implementor must ensure signum(x.compareTo(y)) == -signum(y.compareTo(x)) for all x and y. (This implies that x.compareTo(y) must throw an exception if and only if y.compareTo(x) throws an exception.)

The implementor must also ensure that the relation is transitive: (x.compareTo(y) > 0 && y.compareTo(z) > 0) implies x.compareTo(z) > 0.

Finally, the implementor must ensure that x.compareTo(y)==0 implies that signum(x.compareTo(z)) == signum(y.compareTo(z)), for all z.

Parameters
other:SimpleOutputElement.AttrName

the object to be compared.

Returns:int

a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.

Annotations
@Override
equalsback to summary
public boolean equals(Object o)

Overrides java.lang.Object.equals.

Doc from java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

Parameters
o:Object

the reference object with which to compare.

Returns:boolean

true if this object is the same as the obj argument; false otherwise.

Annotations
@Override
hashCodeback to summary
public int hashCode()

Overrides java.lang.Object.hashCode.

Doc from java.lang.Object.hashCode.

Returns a hash code value for this object. This method is supported for the benefit of hash tables such as those provided by java.util.HashMap.

The general contract of hashCode is:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
Returns:int

a hash code value for this object

Annotations
@Override
toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object. Satisfying this method's contract implies a non-null result must be returned.

Returns:String

a string representation of the object

Annotations
@Override