|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.codehaus.stax2.util.StreamWriterDelegate
org.codehaus.stax2.ri.Stax2WriterAdapter
public class Stax2WriterAdapter
This adapter implements parts of XMLStreamWriter2, the
extended stream writer defined by Stax2 extension, by wrapping
a vanilla Stax 1.0 XMLStreamReader implementation.
Note: the implementation is incomplete as-is, since not all features needed are accessible via basic Stax 1.0 interface. As such, two main use cases for this wrapper are:
| Field Summary | |
|---|---|
protected String |
mEncoding
Encoding we have determined to be used, according to method calls (write start document etc.) |
protected boolean |
mNsRepairing
|
protected SimpleValueEncoder |
mValueEncoder
|
| Fields inherited from class org.codehaus.stax2.util.StreamWriterDelegate |
|---|
mDelegate |
| Fields inherited from interface javax.xml.stream.XMLStreamConstants |
|---|
ATTRIBUTE, CDATA, CHARACTERS, COMMENT, DTD, END_DOCUMENT, END_ELEMENT, ENTITY_DECLARATION, ENTITY_REFERENCE, NAMESPACE, NOTATION_DECLARATION, PROCESSING_INSTRUCTION, SPACE, START_DOCUMENT, START_ELEMENT |
| Constructor Summary | |
|---|---|
protected |
Stax2WriterAdapter(XMLStreamWriter sw)
|
| Method Summary | |
|---|---|
void |
closeCompletely()
Method similar to XMLStreamWriter.close(),
except that this method also does close the underlying output
destination (stream) if it has not yet been closed. |
void |
copyEventFromReader(XMLStreamReader2 sr,
boolean preserveEventData)
Method that essentially copies event that the specified reader has just read. |
protected void |
copyStartElement(XMLStreamReader sr)
|
String |
getEncoding()
Method that can be called to get information about encoding that this writer is using (or at least claims is using). |
XMLStreamLocation2 |
getLocation()
Method that should return current output location, if the writer keeps track of it; null if it does not. |
protected SimpleValueEncoder |
getValueEncoder()
|
boolean |
isPropertySupported(String name)
Method similar to XMLOutputFactory.isPropertySupported(java.lang.String), used
to determine whether a property is supported by the Writer
instance. |
protected String |
serializeQNameValue(QName name)
Method called to serialize given qualified name into valid String serialization, taking into account existing namespace bindings. |
boolean |
setProperty(String name,
Object value)
Method that can be used to set per-writer properties; a subset of properties one can set via matching XMLOutputFactory2
instance. |
ValidationProblemHandler |
setValidationProblemHandler(ValidationProblemHandler h)
Method that application can call to define a custom handler for validation problems encountered during validation process. |
XMLValidator |
stopValidatingAgainst(XMLValidationSchema schema)
Method that can be called by application to stop validating output against a schema, for which Validatable.validateAgainst(org.codehaus.stax2.validation.XMLValidationSchema)
was called earlier. |
XMLValidator |
stopValidatingAgainst(XMLValidator validator)
Method that can be called by application to stop validating output using specified validator. |
XMLValidator |
validateAgainst(XMLValidationSchema schema)
Method that will construct a XMLValidator instance from the
given schema (unless a validator for that schema has already been
added),
initialize it if necessary, and make validatable object (reader,
writer)
call appropriate validation methods from this point on until the
end of the document (that is, it's not scoped with sub-trees), or until
validator is removed by an explicit call to
Validatable.stopValidatingAgainst(org.codehaus.stax2.validation.XMLValidationSchema). |
static XMLStreamWriter2 |
wrapIfNecessary(XMLStreamWriter sw)
Method that should be used to add dynamic support for XMLStreamWriter2. |
void |
writeBinary(Base64Variant v,
byte[] value,
int from,
int length)
|
void |
writeBinary(byte[] value,
int from,
int length)
Write binary content as base64 encoded characters to the output. |
void |
writeBinaryAttribute(Base64Variant v,
String prefix,
String nsURI,
String localName,
byte[] value)
|
void |
writeBinaryAttribute(String prefix,
String nsURI,
String localName,
byte[] value)
Write a byte array attribute. |
void |
writeBoolean(boolean b)
Write a boolean value to the output as textual element content. |
void |
writeBooleanAttribute(String prefix,
String nsURI,
String localName,
boolean b)
Write a boolean value to the output as attribute value. |
void |
writeCData(char[] text,
int start,
int len)
|
void |
writeDecimal(BigDecimal value)
Write a decimal value to the output as textual element content. |
void |
writeDecimalAttribute(String prefix,
String nsURI,
String localName,
BigDecimal value)
|
void |
writeDouble(double value)
Write a double value to the output as textual element content. |
void |
writeDoubleArray(double[] value,
int from,
int length)
|
void |
writeDoubleArrayAttribute(String prefix,
String nsURI,
String localName,
double[] value)
|
void |
writeDoubleAttribute(String prefix,
String nsURI,
String localName,
double value)
|
void |
writeDTD(String rootName,
String systemId,
String publicId,
String internalSubset)
|
void |
writeFloat(float value)
Write a float value to the output as textual element content. |
void |
writeFloatArray(float[] value,
int from,
int length)
|
void |
writeFloatArrayAttribute(String prefix,
String nsURI,
String localName,
float[] value)
|
void |
writeFloatAttribute(String prefix,
String nsURI,
String localName,
float value)
|
void |
writeFullEndElement()
Method similar to XMLStreamWriter.writeEndElement(), but that will always
write the full end element, instead of empty element. |
void |
writeInt(int value)
Write an int value to the output as textual element content. |
void |
writeIntArray(int[] value,
int from,
int length)
Write int array to the output. |
void |
writeIntArrayAttribute(String prefix,
String nsURI,
String localName,
int[] value)
Write int array attribute. |
void |
writeIntAttribute(String prefix,
String nsURI,
String localName,
int value)
Write an integer value to the output as attribute value. |
void |
writeInteger(BigInteger value)
|
void |
writeIntegerAttribute(String prefix,
String nsURI,
String localName,
BigInteger value)
|
void |
writeLong(long value)
Write a long value to the output as textual element content. |
void |
writeLongArray(long[] value,
int from,
int length)
|
void |
writeLongArrayAttribute(String prefix,
String nsURI,
String localName,
long[] value)
|
void |
writeLongAttribute(String prefix,
String nsURI,
String localName,
long value)
Write an long value to the output as attribute value. |
void |
writeQName(QName name)
|
void |
writeQNameAttribute(String prefix,
String nsURI,
String localName,
QName name)
|
void |
writeRaw(char[] text,
int offset,
int length)
Method that writes specified content as is, without encoding or deciphering it in any way. |
void |
writeRaw(String text)
Method that writes specified content as is, without encoding or deciphering it in any way. |
void |
writeRaw(String text,
int offset,
int len)
Method that writes specified content as is, without encoding or deciphering it in any way. |
void |
writeSpace(char[] text,
int offset,
int length)
Method that can be called to write whitespace-only content. |
void |
writeSpace(String text)
Method that can be called to write whitespace-only content. |
void |
writeStartDocument(String version,
String encoding,
boolean standAlone)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected String mEncoding
protected SimpleValueEncoder mValueEncoder
protected final boolean mNsRepairing
| Constructor Detail |
|---|
protected Stax2WriterAdapter(XMLStreamWriter sw)
| Method Detail |
|---|
public static XMLStreamWriter2 wrapIfNecessary(XMLStreamWriter sw)
XMLStreamWriter2. Method will check whether the
stream reader passed happens to be a XMLStreamWriter2;
and if it is, return it properly cast. If not, it will create
necessary wrapper to support features needed by StaxMate,
using vanilla Stax 1.0 interface.
public void writeBoolean(boolean b)
throws XMLStreamException
TypedXMLStreamWriter
writeBoolean in interface TypedXMLStreamWriterb - The boolean value to write.
XMLStreamException
public void writeInt(int value)
throws XMLStreamException
TypedXMLStreamWriter
writeInt in interface TypedXMLStreamWriterXMLStreamException
public void writeLong(long value)
throws XMLStreamException
TypedXMLStreamWriter
writeLong in interface TypedXMLStreamWriterXMLStreamException
public void writeFloat(float value)
throws XMLStreamException
TypedXMLStreamWriter
writeFloat in interface TypedXMLStreamWriterXMLStreamException
public void writeDouble(double value)
throws XMLStreamException
TypedXMLStreamWriter
writeDouble in interface TypedXMLStreamWriterXMLStreamException
public void writeInteger(BigInteger value)
throws XMLStreamException
writeInteger in interface TypedXMLStreamWriterXMLStreamException
public void writeDecimal(BigDecimal value)
throws XMLStreamException
TypedXMLStreamWriter
writeDecimal in interface TypedXMLStreamWriterXMLStreamException
public void writeQName(QName name)
throws XMLStreamException
writeQName in interface TypedXMLStreamWriterXMLStreamException
public void writeIntArray(int[] value,
int from,
int length)
throws XMLStreamException
TypedXMLStreamWriterWrite int array to the output. The lexical representation of a int array is defined by the following XML schema type:
<xs:simpleType name="intArray">
<xs:list itemType="xs:int"/>
</xs:simpleType>
whose lexical space is a list of space-separated ints.
This method can be called multiple times to write the
array in chunks.
writeIntArray in interface TypedXMLStreamWritervalue - The array from which to write the ints.from - The index in the array from which writing starts.length - The number of ints to write.
XMLStreamException
public void writeLongArray(long[] value,
int from,
int length)
throws XMLStreamException
writeLongArray in interface TypedXMLStreamWriterXMLStreamException
public void writeFloatArray(float[] value,
int from,
int length)
throws XMLStreamException
writeFloatArray in interface TypedXMLStreamWriterXMLStreamException
public void writeDoubleArray(double[] value,
int from,
int length)
throws XMLStreamException
writeDoubleArray in interface TypedXMLStreamWriterXMLStreamException
public void writeBinary(Base64Variant v,
byte[] value,
int from,
int length)
throws XMLStreamException
writeBinary in interface TypedXMLStreamWriterXMLStreamException
public void writeBinary(byte[] value,
int from,
int length)
throws XMLStreamException
TypedXMLStreamWriterWrite binary content as base64 encoded characters to the output. The lexical representation of a byte array is defined by the XML Schema base64Binary data type. This method can be called multiple times to write the array in chunks; but if so, callers should write output in chunks divisible by 3 (natural atomic unit of base64 output, which avoids padding) to maximize interoperability.
Note: base64 variant defaults to Base64Variants.MIME.
writeBinary in interface TypedXMLStreamWritervalue - The array from which to write the bytes.from - The index in the array from which writing starts.length - The number of bytes to write.
XMLStreamException
public void writeBooleanAttribute(String prefix,
String nsURI,
String localName,
boolean b)
throws XMLStreamException
TypedXMLStreamWriter
writeBooleanAttribute in interface TypedXMLStreamWriterprefix - The attribute's prefix. Null or "" if no prefix is to be usednsURI - The attribute's URI (can be either null or empty String for "no namespace")localName - The attribute's local nameb - The boolean value to write.
XMLStreamException
public void writeIntAttribute(String prefix,
String nsURI,
String localName,
int value)
throws XMLStreamException
TypedXMLStreamWriter
writeIntAttribute in interface TypedXMLStreamWriterprefix - The attribute's prefix. Null or "" if no prefix is to be usednsURI - The attribute's URI (can be either null or empty String for "no namespace")localName - The attribute's local namevalue - The integer value to write.
XMLStreamException
public void writeLongAttribute(String prefix,
String nsURI,
String localName,
long value)
throws XMLStreamException
TypedXMLStreamWriter
writeLongAttribute in interface TypedXMLStreamWriterprefix - The attribute's prefix. Null or "" if no prefix is to be usednsURI - The attribute's URI (can be either null or empty String for "no namespace")localName - The attribute's local namevalue - The long value to write.
XMLStreamException
public void writeFloatAttribute(String prefix,
String nsURI,
String localName,
float value)
throws XMLStreamException
writeFloatAttribute in interface TypedXMLStreamWriterXMLStreamException
public void writeDoubleAttribute(String prefix,
String nsURI,
String localName,
double value)
throws XMLStreamException
writeDoubleAttribute in interface TypedXMLStreamWriterXMLStreamException
public void writeIntegerAttribute(String prefix,
String nsURI,
String localName,
BigInteger value)
throws XMLStreamException
writeIntegerAttribute in interface TypedXMLStreamWriterXMLStreamException
public void writeDecimalAttribute(String prefix,
String nsURI,
String localName,
BigDecimal value)
throws XMLStreamException
writeDecimalAttribute in interface TypedXMLStreamWriterXMLStreamException
public void writeQNameAttribute(String prefix,
String nsURI,
String localName,
QName name)
throws XMLStreamException
writeQNameAttribute in interface TypedXMLStreamWriterXMLStreamException
public void writeIntArrayAttribute(String prefix,
String nsURI,
String localName,
int[] value)
throws XMLStreamException
TypedXMLStreamWriterWrite int array attribute. The lexical representation of a int array is defined by the following XML schema type:
<xs:simpleType name="intArray">
<xs:list itemType="xs:int"/>
</xs:simpleType>
whose lexical space is a list of space-separated ints.
writeIntArrayAttribute in interface TypedXMLStreamWriterprefix - The attribute's prefix.nsURI - The attribute's URI.localName - The attribute's local name.value - The array from which to write the ints.
XMLStreamException
public void writeLongArrayAttribute(String prefix,
String nsURI,
String localName,
long[] value)
throws XMLStreamException
writeLongArrayAttribute in interface TypedXMLStreamWriterXMLStreamException
public void writeFloatArrayAttribute(String prefix,
String nsURI,
String localName,
float[] value)
throws XMLStreamException
writeFloatArrayAttribute in interface TypedXMLStreamWriterXMLStreamException
public void writeDoubleArrayAttribute(String prefix,
String nsURI,
String localName,
double[] value)
throws XMLStreamException
writeDoubleArrayAttribute in interface TypedXMLStreamWriterXMLStreamException
public void writeBinaryAttribute(String prefix,
String nsURI,
String localName,
byte[] value)
throws XMLStreamException
TypedXMLStreamWriterWrite a byte array attribute. The lexical representation of a byte array is defined by the XML Schema base64Binary data type.
Note: base64 variant defaults to Base64Variants.MIME.
writeBinaryAttribute in interface TypedXMLStreamWriterprefix - The attribute's prefix.nsURI - The attribute's URI.localName - The attribute's local name.value - The array from which to write the bytes.
XMLStreamException
public void writeBinaryAttribute(Base64Variant v,
String prefix,
String nsURI,
String localName,
byte[] value)
throws XMLStreamException
writeBinaryAttribute in interface TypedXMLStreamWriterXMLStreamExceptionpublic boolean isPropertySupported(String name)
XMLStreamWriter2XMLOutputFactory.isPropertySupported(java.lang.String), used
to determine whether a property is supported by the Writer
instance. This means that this method may return false
for some properties that the output factory does support: specifically,
it should only return true if the value is mutable on per-instance
basis. False means that either the property is not recognized, or
is not mutable via writer instance.
isPropertySupported in interface XMLStreamWriter2
public boolean setProperty(String name,
Object value)
XMLStreamWriter2XMLOutputFactory2
instance. Exactly which methods are mutable is implementation
specific.
setProperty in interface XMLStreamWriter2name - Name of the property to setvalue - Value to set property to.
public XMLStreamLocation2 getLocation()
XMLStreamWriter2
getLocation in interface XMLStreamWriter2public String getEncoding()
XMLStreamWriter2XMLOutputFactory
writeStartDocument method (explicitly
or implicity; latter in cases where defaults are imposed
by Stax specification)
getEncoding in interface XMLStreamWriter2
public void writeCData(char[] text,
int start,
int len)
throws XMLStreamException
writeCData in interface XMLStreamWriter2XMLStreamException
public void writeDTD(String rootName,
String systemId,
String publicId,
String internalSubset)
throws XMLStreamException
writeDTD in interface XMLStreamWriter2XMLStreamException
public void writeFullEndElement()
throws XMLStreamException
XMLStreamWriter2XMLStreamWriter.writeEndElement(), but that will always
write the full end element, instead of empty element. This only
matters for cases where the element itself has no content, and
if writer is allowed to write empty elements when it encounters
such start/end element write pairs.
writeFullEndElement in interface XMLStreamWriter2XMLStreamException
public void writeSpace(String text)
throws XMLStreamException
XMLStreamWriter2This method is useful for things like outputting indentation.
writeSpace in interface XMLStreamWriter2XMLStreamException
public void writeSpace(char[] text,
int offset,
int length)
throws XMLStreamException
XMLStreamWriter2This method is useful for things like outputting indentation.
writeSpace in interface XMLStreamWriter2XMLStreamException
public void writeStartDocument(String version,
String encoding,
boolean standAlone)
throws XMLStreamException
writeStartDocument in interface XMLStreamWriter2XMLStreamException
public void writeRaw(String text)
throws XMLStreamException
XMLStreamWriter2Method is usually used when encapsulating output from another writer as a sub-tree, or when passing through XML fragments.
NOTE: since text to be written may be anything, including markup, it can not be reliably validated. Because of this, validator(s) attached to the writer will NOT be informed about writes.
writeRaw in interface XMLStreamWriter2XMLStreamException
public void writeRaw(String text,
int offset,
int len)
throws XMLStreamException
XMLStreamWriter2Method is usually used when encapsulating output from another writer as a sub-tree, or when passing through XML fragments.
NOTE: since text to be written may be anything, including markup, it can not be reliably validated. Because of this, validator(s) attached to the writer will NOT be informed about writes.
writeRaw in interface XMLStreamWriter2XMLStreamException
public void writeRaw(char[] text,
int offset,
int length)
throws XMLStreamException
XMLStreamWriter2Method is usually used when encapsulating output from another writer as a sub-tree, or when passing through XML fragments.
NOTE: since text to be written may be anything, including markup, it can not be reliably validated. Because of this, validator(s) attached to the writer will NOT be informed about writes.
writeRaw in interface XMLStreamWriter2XMLStreamException
public void copyEventFromReader(XMLStreamReader2 sr,
boolean preserveEventData)
throws XMLStreamException
XMLStreamWriter2
copyEventFromReader in interface XMLStreamWriter2sr - Reader to use for accessing event to copypreserveEventData - If true, writer is not allowed to change
the state of the reader (so that all the data associated with the
current event has to be preserved); if false, writer is allowed
to use methods that may cause some data to be discarded. Setting
this to false may improve the performance, since it may allow
full no-copy streaming of data, especially textual contents.
XMLStreamException
public void closeCompletely()
throws XMLStreamException
XMLStreamWriter2XMLStreamWriter.close(),
except that this method also does close the underlying output
destination (stream) if it has not yet been closed.
It is specifically necessary to call this method if the parsing ends
in an exception to ensure that the output destination does get
properly closed, even if the stream writer would otherwise close
it (as is the case for destinations it manages where calling
application has no access)
closeCompletely in interface XMLStreamWriter2XMLStreamException
public XMLValidator validateAgainst(XMLValidationSchema schema)
throws XMLStreamException
ValidatableXMLValidator instance from the
given schema (unless a validator for that schema has already been
added),
initialize it if necessary, and make validatable object (reader,
writer)
call appropriate validation methods from this point on until the
end of the document (that is, it's not scoped with sub-trees), or until
validator is removed by an explicit call to
Validatable.stopValidatingAgainst(org.codehaus.stax2.validation.XMLValidationSchema).
Note that while this method can be called at any point in output processing, validator instances are not required to be able to handle addition at other points than right before outputting the root element.
validateAgainst in interface ValidatableXMLStreamException
public XMLValidator stopValidatingAgainst(XMLValidationSchema schema)
throws XMLStreamException
ValidatableValidatable.validateAgainst(org.codehaus.stax2.validation.XMLValidationSchema)
was called earlier.
stopValidatingAgainst in interface ValidatableXMLStreamException
public XMLValidator stopValidatingAgainst(XMLValidator validator)
throws XMLStreamException
ValidatableValidatable.validateAgainst(org.codehaus.stax2.validation.XMLValidationSchema).
Note: the specified validator is compared for identity with validators in use, not for equality.
stopValidatingAgainst in interface Validatablevalidator)
if it was being used for validating current document; null if not.
XMLStreamExceptionpublic ValidationProblemHandler setValidationProblemHandler(ValidationProblemHandler h)
Validatable
setValidationProblemHandler in interface Validatableh - Handler to install, if non null; if null, indicates that
the default (implementation-specific) handling should be used
protected void copyStartElement(XMLStreamReader sr)
throws XMLStreamException
XMLStreamException
protected String serializeQNameValue(QName name)
throws XMLStreamException
XMLStreamExceptionprotected SimpleValueEncoder getValueEncoder()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||