gnu.java.beans.encoder
Interface Writer
- StAXWriter
A
Writer
represents a simplified interface to an XML
writer that is used for the XML persistence mechanism.
Its sole purpose is to allow multiple backends which may remove
the need to have certain APIs in the classpath. Eg. it is possible
to write a stripped down XML Writer that does not rely on SAX, StAX
or DOM APIs.
The caller may assume that every action is done immediately. However
it is possible that the underlying implementation uses buffering streams.
To make sure the data is written call the
flush
method.
The
Writer
implementation should care about the formatting
of the XML stream making it possible to generate three types of formats using
a special method invocation chain.
Write
<element/>
by issuing
write("element", true)
(or any of the other
write-variants that allows specifying the
isEmpty
argument)
and
writeEnd(true)
.
Write
<element>body</element>
by issuing
writeNoChildren("element", "body")
and
writeNoChildrenEnd()
.
Write
<element>
<child1/>
<child2/>
...
<element/>
by issuing
write("element", false)
(or any of the other
write-variants that allows specifying the
isEmpty
argument)
and
writeEnd(false)
.
Note: It is important that the values of
isEmpty
and
wasEmpty
match. Otherwise strange things might happen to
the layout.
void | close() - Closes the writer.
|
void | flush() - Forces the implementation to write some data.
|
void | write(String tagName, boolean empty) - Writes an XML tag without any attributes.
|
void | write(String tagName, String value) - Writes an XML tag with no attributes but with a body text
that may have child elements.
|
void | write(String tagName, String attributeName, String attributeValue, boolean empty) - Writes an XML tag with one attribute name and value.
|
void | write(String tagName, String value, String[] attributeNames, String[] attributeValues, boolean empty) - Writes an XML tag with multiple attributes and a body text.
|
void | write(String tagName, String[] attributeNames, String[] attributeValues, boolean empty) - Writes an XML tag with multiple attributes without a body text.
|
void | writeEnd(boolean wasEmpty) - Writes the end of an XML tag.
|
void | writeEndNoChildren() - Writes the end of an XML tag that has no child elements.
|
void | writeNoChildren(String tagName, String value) - Writes an XML tag with no attributes but with a body text
that does not have child elements.
|
void | writePreamble() - Writes the XML preamble.
|
close
public void close()
Closes the writer.
flush
public void flush()
Forces the implementation to write some data.
write
public void write(String tagName,
boolean empty)
Writes an XML tag without any attributes.
tagName
- The name of the tag to write.empty
- Whether the element has child elements.
write
public void write(String tagName,
String value)
Writes an XML tag with no attributes but with a body text
that may have child elements.
tagName
- The name of the tag to write.value
- The element's body content.
write
public void write(String tagName,
String attributeName,
String attributeValue,
boolean empty)
Writes an XML tag with one attribute name and value.
tagName
- The name of the tag to write.attributeName
- The name of attribute.attributeValue
- The attribute's value.empty
- Whether the element has child elements.
write
public void write(String tagName,
String value,
String[] attributeNames,
String[] attributeValues,
boolean empty)
Writes an XML tag with multiple attributes and a body text.
tagName
- The name of the tag to write.value
- The element's body content.attributeNames
- A set of attribute names.attributeValues
- A set of attribute values.empty
- Whether the element has child elements.
write
public void write(String tagName,
String[] attributeNames,
String[] attributeValues,
boolean empty)
Writes an XML tag with multiple attributes without a body text.
tagName
- The name of the tag to write.attributeNames
- A set of attribute names.attributeValues
- A set of attribute values.empty
- Whether the element has child elements.
writeEnd
public void writeEnd(boolean wasEmpty)
Writes the end of an XML tag.
If your tag has not generated any body text or child
elements provide
true
as the argument to generate
more space efficient variant of the tag.>/p>
wasEmpty
- Whether the tag was empty or not.
writeEndNoChildren
public void writeEndNoChildren()
Writes the end of an XML tag that has no child elements.
Must be used in combination with
writeNoChildren
only.
writeNoChildren
public void writeNoChildren(String tagName,
String value)
Writes an XML tag with no attributes but with a body text
that does not have child elements.
tagName
- The name of the tag to write.value
- The element's body content.
Writer.java -- Writing interface for XML persistence.
Copyright (C) 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version.