Package com.ctc.wstx.sw
Class SimpleOutputElement
- java.lang.Object
-
- com.ctc.wstx.sw.OutputElementBase
-
- com.ctc.wstx.sw.SimpleOutputElement
-
- All Implemented Interfaces:
NamespaceContext
public final class SimpleOutputElement extends OutputElementBase
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).
-
-
Field Summary
Fields Modifier and Type Field Description protected HashSet<com.ctc.wstx.sw.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, whatevermPrefix
maps to.-
Fields inherited from class com.ctc.wstx.sw.OutputElementBase
mDefaultNsURI, mNsMapping, mNsMapShared, mRootNsContext, PREFIX_MISBOUND, PREFIX_OK, PREFIX_UNBOUND
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method 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.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.static SimpleOutputElement
createRoot()
String
getLocalName()
QName
getName()
String
getNameDesc()
String
getNamespaceURI()
SimpleOutputElement
getParent()
String
getPrefix()
boolean
isRoot()
protected SimpleOutputElement
reuseAsChild(SimpleOutputElement parent, String localName)
protected SimpleOutputElement
reuseAsChild(SimpleOutputElement parent, String prefix, String localName, String uri)
void
setDefaultNsUri(String uri)
void
setPrefix(String prefix)
protected void
setRootNsContext(NamespaceContext ctxt)
Note: this method can and will only be called before outputting the root element.-
Methods inherited from class com.ctc.wstx.sw.OutputElementBase
addPrefix, generateMapping, getDefaultNsUri, getExplicitPrefix, getNamespaceURI, getPrefix, getPrefixes, isPrefixValid, relink, throwOutputError
-
-
-
-
Field Detail
-
mParent
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).
-
mPrefix
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.
-
mLocalName
protected String mLocalName
Local name of the element. Non-final only to allow reuse.
-
mURI
protected String mURI
Namespace of the element, whatevermPrefix
maps to. Non-final only to allow reuse.
-
mAttrSet
protected HashSet<com.ctc.wstx.sw.SimpleOutputElement.AttrName> mAttrSet
Map used to check for duplicate attribute declarations, if feature is enabled.
-
-
Method Detail
-
createRoot
public static SimpleOutputElement createRoot()
-
createChild
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.
-
reuseAsChild
protected SimpleOutputElement reuseAsChild(SimpleOutputElement parent, String localName)
- Returns:
- New head of the recycle pool
-
reuseAsChild
protected SimpleOutputElement reuseAsChild(SimpleOutputElement parent, String prefix, String localName, String uri)
-
createChild
protected SimpleOutputElement createChild(String prefix, String localName, String uri)
Full factory method, used for 'normal' namespace qualified output methods.
-
addToPool
protected void addToPool(SimpleOutputElement poolHead)
Method called to temporarily link this instance to a pool, to allow reusing of instances with the same reader.
-
getParent
public SimpleOutputElement getParent()
-
isRoot
public boolean isRoot()
- Specified by:
isRoot
in classOutputElementBase
-
getNameDesc
public String getNameDesc()
- Specified by:
getNameDesc
in classOutputElementBase
- Returns:
- String presentation of the fully-qualified name, in "prefix:localName" format (no URI). Useful for error and debugging messages.
-
getPrefix
public String getPrefix()
-
getLocalName
public String getLocalName()
-
getNamespaceURI
public String getNamespaceURI()
-
getName
public QName getName()
-
checkAttrWrite
public void checkAttrWrite(String nsURI, String localName) throws XMLStreamException
- Throws:
XMLStreamException
-
setPrefix
public void setPrefix(String prefix)
-
setDefaultNsUri
public void setDefaultNsUri(String uri)
- Specified by:
setDefaultNsUri
in classOutputElementBase
-
setRootNsContext
protected final void setRootNsContext(NamespaceContext ctxt)
Note: this method can and will only be called before outputting the root element.- Specified by:
setRootNsContext
in classOutputElementBase
-
-