public final class Document
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private NamespaceDecl |
activeNamespaces
Remembers the namespace declarations of the last unclosed start tag,
so that we can fix up dummy prefixes in
Pcdata . |
private Content |
current
Currently active writer.
|
private java.util.Map<java.lang.Class,DatatypeWriter> |
datatypeWriters |
private NamespaceSupport |
inscopeNamespace
Used to keep track of in-scope namespace bindings declared in ancestors.
|
private int |
iota
Used to generate unique namespace prefix.
|
(package private) static char |
MAGIC
The first char of the dummy prefix.
|
private XmlSerializer |
out |
private int |
prefixIota |
private java.lang.StringBuilder |
prefixSeed
Used by
newPrefix() . |
private boolean |
started
Set to true once we invoke
XmlSerializer.startDocument() . |
private ContentVisitor |
visitor |
Constructor and Description |
---|
Document(XmlSerializer out) |
Modifier and Type | Method and Description |
---|---|
void |
addDatatypeWriter(DatatypeWriter<?> dw)
Defines additional user object -> string conversion logic.
|
(package private) char |
assignNewId() |
private java.lang.StringBuilder |
fixPrefix(java.lang.StringBuilder buf)
Replaces dummy prefixes in the value to the real ones
by using
activeNamespaces . |
(package private) void |
flush() |
private java.lang.String |
newPrefix()
Allocates a new unique prefix.
|
(package private) void |
run()
Performs the output as much as possible
|
(package private) void |
setFirstContent(Content c) |
(package private) void |
writeValue(java.lang.Object obj,
NamespaceResolver nsResolver,
java.lang.StringBuilder buf)
Appends the given object to the end of the given buffer.
|
private final XmlSerializer out
private boolean started
XmlSerializer.startDocument()
.
This is so that we can defer the writing as much as possible.
private Content current
This points to the last written token.
private final java.util.Map<java.lang.Class,DatatypeWriter> datatypeWriters
private int iota
private final NamespaceSupport inscopeNamespace
private NamespaceDecl activeNamespaces
Pcdata
.private final ContentVisitor visitor
private final java.lang.StringBuilder prefixSeed
newPrefix()
.private int prefixIota
static final char MAGIC
Document(XmlSerializer out)
void flush()
void setFirstContent(Content c)
public void addDatatypeWriter(DatatypeWriter<?> dw)
Applications can add their own DatatypeWriter
so that
application-specific objects can be turned into String
for output.
dw
- The DatatypeWriter
to be added. Must not be null.void run()
void writeValue(java.lang.Object obj, NamespaceResolver nsResolver, java.lang.StringBuilder buf)
nsResolver
- useprivate java.lang.String newPrefix()
private java.lang.StringBuilder fixPrefix(java.lang.StringBuilder buf)
activeNamespaces
.char assignNewId()