Deprecated
IonWriter implementations to an IonBinaryWriter instances.
This class is provided as a shim for compatibility to allow binary writer implementations to be adaptable to the legacy interface.
| Modifier and Type | Class and Description |
|---|---|
| public static interface | IonBinaryWriterAdapter.
Simple interface for constructing an |
| private static class | IonBinaryWriterAdapter.
Internal |
| Modifier and Type | Field and Description |
|---|---|
| private final IonBinaryWriterAdapter. | |
| private final IonWriter |
| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| public void | addTypeAnnotation(String
string annotation to append to the annotation list annotation)Implements com. Adds a given string to the list of pending annotations. |
| public <T> T | asFacet(Class<T>
The type token of the requested facet type. facetType)Implements com. Returns a facet of this subject if supported. |
| public int | byteSize()
Implements com. Gets the size in bytes of this binary data. |
| public void | close()
Implements com. Closes this stream and releases any system resources associated with it. |
| public void | finish()
Implements com. Indicates that writing is completed and all buffered data should be written and flushed as if this were the end of the Ion data stream. |
| public void | flush()
Implements com. Flushes this writer by writing any buffered output to the underlying output target without finalizing the stream's local symbol table. |
| public byte[] | getBytes()
Implements com. Copies the current contents of this writer as a new byte array holding Ion binary-encoded data. |
| public int | getBytes(byte[]
users byte array to write into bytes, int initial offset in the array to write into offset, int maximum number of bytes to write maxlen)Implements com. Copies the current contents of the writer to a given byte array array. |
| pack-priv IonWriter | |
| public SymbolTable | getSymbolTable()
Implements com. Gets the symbol table that is currently in use by the writer. |
| public boolean | isInStruct()
Implements com. Determines whether values are being written as fields of a struct. |
| pack-priv void | |
| public void | setFieldName(String
text of the field name name)Implements com. Sets the pending field name to the given text. |
| public void | setFieldNameSymbol(SymbolToken
text of the field name name)Implements com. Sets the pending field name to the given token. |
| public void | setTypeAnnotations(String...
string array with the annotations.
If null or empty, any pending annotations are cleared. annotations)Implements com. Sets the full list of pending annotations to the given text symbols. |
| public void | setTypeAnnotationSymbols(SymbolToken...
If null or empty, any pending annotations are cleared. annotations)Implements com. Sets the full list of pending annotations to the given symbols. |
| public void | stepIn(IonType containerType)
Implements com. Writes the beginning of a non-null container (list, sexp, or struct). |
| public void | stepOut()
Implements com. Writes the end of the current container, returning this writer to the context of parent container. |
| public void | writeBlob(byte[]
may be null to represent value)null.blob.Implements com. write the byte array out as an IonBlob value. |
| public void | writeBlob(byte[]
bytes to be written.
May be value, int null to represent null.blob.offset of the first byte in value to write start, int number of bytes to write from value len)Implements com. Writes a portion of the byte array out as an IonBlob value. |
| public void | writeBool(boolean
true or false as desired value)Implements com. writes a non-null boolean value (true or false) as an IonBool to output. |
| public int | writeBytes(OutputStream
OutputStream to write the bytes to userstream)Implements com. Writes the current contents of the writer to the output stream. |
| public void | writeClob(byte[]
may be null to represent value)null.clob.Implements com. write the byte array out as an IonClob value. |
| public void | writeClob(byte[]
bytes to be written.
May be value, int null to represent null.clob.offset of the first byte in value to write start, int number of bytes to write from value len)Implements com. Writes a portion of the byte array out as an IonClob value. |
| public void | writeDecimal(BigDecimal
may be null to represent value)null.decimal.Implements com. Writes a BigDecimal value as an Ion decimal. |
| public void | writeFloat(double
double to write value)Implements com. writes a 64 bit binary floating point value, a Java double, as an IonFloat. |
| public void | writeInt(long
signed int to write value)Implements com. writes a signed 64 bit value, a Java long, as an IonInt. |
| public void | writeInt(BigInteger
BigInteger to write value)Implements com. writes a BigInteger value as an IonInt. |
| public void | writeNull()
Implements com. Writes a value of Ion's null type ( |
| public void | writeNull(IonType
type of the null to be written type)Implements com. Writes a null value of a specified Ion type. |
| public void | writeString(String
may be null to represent value)null.string.Implements com. Writes a |
| public void | writeSymbol(String
may be null to represent content)null.symbol.Implements com. Writes the text of an Ion symbol value. |
| public void | writeSymbolToken(SymbolToken
may be null to represent content)null.symbol.Implements com. Writes the content of an Ion symbol value. |
| public void | writeTimestamp(Timestamp
may be null to represent value)null.timestamp.Implements com. Writes a timestamp value. |
| public void | writeTimestampUTC(Date
java.util Date holding the UTC timestamp;
may be null to represent value)null.timestamp.Implements com. writes the passed in Date (in milliseconds since the epoch) as an IonTimestamp. |
| public void | writeValue(IonValue
may be null, in which case this method does nothing. value)Implements com. writes the contents of the passed in Ion value to the output. |
| public void | writeValue(IonReader reader)
Implements com. Writes the current value from a reader. |
| public void | writeValues(IonReader reader)
Implements com. Writes a reader's current value, and all following values until the end of the current container. |
| buffer | back to summary |
|---|---|
| private final IonBinaryWriterAdapter. | |
| delegate | back to summary |
|---|---|
| private final IonWriter delegate | |
| IonBinaryWriterAdapter | back to summary |
|---|---|
| public IonBinaryWriterAdapter(final IonBinaryWriterAdapter. | |
| addTypeAnnotation | back to summary |
|---|---|
| public void addTypeAnnotation(String annotation) Implements com. Doc from com. Adds a given string to the list of pending annotations.
The list of pending annotations is cleared when the current value is
written via
| |
| asFacet | back to summary |
|---|---|
| public <T> T asFacet(Class<T> facetType) Implements com. Doc from com. Returns a facet of this subject if supported.
| |
| byteSize | back to summary |
|---|---|
| public int byteSize() Implements com. Doc from com. Gets the size in bytes of this binary data.
This is generally needed before calling
| |
| close | back to summary |
|---|---|
| public void close() throws IOException Implements com. Doc from com. Closes this stream and releases any system resources associated with it. If the stream is already closed then invoking this method has no effect.
If the cursor is between top-level values, this method will
In other words: unless you're recovering from a failure condition, don't close the writer until you've stepped-out back to the starting level.
| |
| finish | back to summary |
|---|---|
| public void finish() throws IOException Implements com. Doc from com. Indicates that writing is completed and all buffered data should be written and flushed as if this were the end of the Ion data stream. For example, an Ion binary writer will finalize any local symbol table, write all top-level values, and then flush. This method may only be called when all top-level values are completely written and stepped-out.
Implementations should allow the application to continue writing further
top-level values following the semantics for concatenating Ion data
streams. If another top-level value is written, the result must behave
as if it were preceded by an Ion version marker, resetting the stream
context as if this were a new stream. (Whether or not an IVM is written
may depend upon the writer's configuration; see
This feature can be used to flush buffered data and reset the local
symbol table before writing more values. Applications that produce long
streams of binary Ion may wish to finish occasionally to relieve memory
pressure, then continue writing data using a new local symbol table.
This is particularly useful for streams that contain an ever-growing
number of unique symbols to avoid unbounded growth of the symbol table,
which may degrade performance and bloat the encoding. Applications that
produce long streams with a limited number of unique symbols should
enable localSymbolTableAppend (see
| |
| flush | back to summary |
|---|---|
| public void flush() throws IOException Implements com. Doc from com. Flushes this writer by writing any buffered output to the underlying output target without finalizing the stream's local symbol table. For some implementations this may have no effect even when some data is buffered, because it's not always possible to fully write partial data. In particular, when writing binary Ion data, Ion's length-prefixed encoding requires a complete top-level value to be written at once.
If localSymbolTableAppend is enabled (see
| |
| getBytes | back to summary |
|---|---|
| public byte[] getBytes() throws IOException Implements com. Doc from com. Copies the current contents of this writer as a new byte array holding Ion binary-encoded data. This allocates an array of the size needed to exactly hold the output and copies the entire value to it.
| |
| getBytes | back to summary |
|---|---|
| public int getBytes(byte[] bytes, int offset, int maxlen) throws IOException Implements com. Doc from com. Copies the current contents of the writer to a given byte array array. This starts writing to the array at offset and writes up to maxlen bytes. If this writer is not able to stop in the middle of its work this may overwrite the array and later throw and exception.
| |
| getDelegate | back to summary |
|---|---|
| pack-priv IonWriter getDelegate() | |
| getSymbolTable | back to summary |
|---|---|
| public SymbolTable getSymbolTable() Implements com. Doc from com. Gets the symbol table that is currently in use by the writer. While writing a number of values the symbol table will be populated with any added symbols. Note that the table may be replaced during processing. For example, the stream may start out with a system table that's later replaced by a local table in order to store newly-encountered symbols.
When this method returns a local table, it may be
mutable, meaning that additional
symbols may be interned until it is
made read-only. Note that
manually mutating local symbol tables is a deprecated feature;
please instead use
| |
| isInStruct | back to summary |
|---|---|
| public boolean isInStruct() Implements com. Doc from com. Determines whether values are being written as fields of a struct. This is especially useful when it is not clear whether field names need to be written or not.
| |
| reset | back to summary |
|---|---|
| pack-priv void reset() | |
| setFieldName | back to summary |
|---|---|
| public void setFieldName(String name) Implements com. Doc from com. Sets the pending field name to the given text.
The pending field name is cleared when the current value is
written via
| |
| setFieldNameSymbol | back to summary |
|---|---|
| public void setFieldNameSymbol(SymbolToken name) Implements com. Doc from com. Sets the pending field name to the given token.
The pending field name is cleared when the current value is
written via
| |
| setTypeAnnotations | back to summary |
|---|---|
| public void setTypeAnnotations(String... annotations) Implements com. Doc from com. Sets the full list of pending annotations to the given text symbols.
Any pending annotations are cleared.
The contents of the
The list of pending annotations is cleared when the current value is
written via
| |
| setTypeAnnotationSymbols | back to summary |
|---|---|
| public void setTypeAnnotationSymbols(SymbolToken... annotations) Implements com. Doc from com. Sets the full list of pending annotations to the given symbols.
Any pending annotations are cleared.
The contents of the
The list of pending annotations is cleared when the current value is
written via This is an "expert method": correct use requires deep understanding of the Ion binary format. You almost certainly don't want to use it.
| |
| stepIn | back to summary |
|---|---|
| public void stepIn(IonType containerType) throws IOException Implements com. Doc from com. Writes the beginning of a non-null container (list, sexp, or struct).
This must be matched by a call to
This method is not used to write
| |
| stepOut | back to summary |
|---|---|
| public void stepOut() throws IOException Implements com. Doc from com. Writes the end of the current container, returning this writer to the
context of parent container.
Invocation of this method must match a preceding call to
| |
| writeBlob | back to summary |
|---|---|
| public void writeBlob(byte[] value) throws IOException Implements com. Doc from com. write the byte array out as an IonBlob value. This copies the byte array.
| |
| writeBlob | back to summary |
|---|---|
| public void writeBlob(byte[] value, int start, int len) throws IOException Implements com. Doc from com. Writes a portion of the byte array out as an IonBlob value. This copies the portion of the byte array that is written.
| |
| writeBool | back to summary |
|---|---|
| public void writeBool(boolean value) throws IOException Implements com. Doc from com. writes a non-null boolean value (true or false) as an IonBool to output.
| |
| writeBytes | back to summary |
|---|---|
| public int writeBytes(OutputStream userstream) throws IOException Implements com. Doc from com. Writes the current contents of the writer to the output stream. This is only valid if the writer is not in the middle of writing a container.
| |
| writeClob | back to summary |
|---|---|
| public void writeClob(byte[] value) throws IOException Implements com. Doc from com. write the byte array out as an IonClob value. This copies the byte array.
| |
| writeClob | back to summary |
|---|---|
| public void writeClob(byte[] value, int start, int len) throws IOException Implements com. Doc from com. Writes a portion of the byte array out as an IonClob value. This copies the porition of the byte array that is written.
| |
| writeDecimal | back to summary |
|---|---|
| public void writeDecimal(BigDecimal value) throws IOException Implements com. Doc from com. Writes a BigDecimal value as an Ion decimal. Ion uses an arbitrarily long sign/value and an arbitrarily long signed exponent to write the value. This preserves all of the BigDecimal digits, the number of significant digits.
To write a negative zero value, pass this method a
| |
| writeFloat | back to summary |
|---|---|
| public void writeFloat(double value) throws IOException Implements com. Doc from com. writes a 64 bit binary floating point value, a Java double, as an IonFloat. Currently IonFloat values are output as 64 bit IEEE 754 big endian values. IonFloat preserves all valid floating point values, including -0.0, Nan and +/-infinity. It does not guarantee preservation of -Nan or other less less "common" values.
| |
| writeInt | back to summary |
|---|---|
| public void writeInt(long value) throws IOException Implements com. Doc from com. writes a signed 64 bit value, a Java long, as an IonInt.
| |
| writeInt | back to summary |
|---|---|
| public void writeInt(BigInteger value) throws IOException Implements com. Doc from com. writes a BigInteger value as an IonInt. If the BigInteger value is null this writes a null int.
| |
| writeNull | back to summary |
|---|---|
| public void writeNull() throws IOException Implements com. Doc from com. Writes a value of Ion's null type ( | |
| writeNull | back to summary |
|---|---|
| public void writeNull(IonType type) throws IOException Implements com. Doc from com. Writes a null value of a specified Ion type.
| |
| writeString | back to summary |
|---|---|
| public void writeString(String value) throws IOException Implements com. Doc from com. Writes a
| |
| writeSymbol | back to summary |
|---|---|
| public void writeSymbol(String content) throws IOException Implements com. Doc from com. Writes the text of an Ion symbol value.
| |
| writeSymbolToken | back to summary |
|---|---|
| public void writeSymbolToken(SymbolToken content) throws IOException Implements com. Doc from com. Writes the content of an Ion symbol value.
| |
| writeTimestamp | back to summary |
|---|---|
| public void writeTimestamp(Timestamp value) throws IOException Implements com. Doc from com. Writes a timestamp value.
| |
| writeTimestampUTC | back to summary |
|---|---|
| public void writeTimestampUTC(Date value) throws IOException Implements com. Doc from com. writes the passed in Date (in milliseconds since the epoch) as an IonTimestamp. The Date value is treated as a UTC value with an unknown timezone offset (a z value).
| |
| writeValue | back to summary |
|---|---|
| public void writeValue(IonValue value) throws IOException Implements com. Doc from com. writes the contents of the passed in Ion value to the output. This method also writes annotations and field names (if in a struct), and performs a deep write, including the contents of any containers encountered.
| |
| writeValue | back to summary |
|---|---|
| public void writeValue(IonReader reader) throws IOException Implements com. Doc from com. Writes the current value from a reader. This method also writes annotations and field names (if in a struct), and performs a deep write, including the contents of any containers encountered. | |
| writeValues | back to summary |
|---|---|
| public void writeValues(IonReader reader) throws IOException Implements com. Doc from com. Writes a reader's current value, and all following values until the end
of the current container. If there's no current value then this method
calls
This method iterates until This method also writes annotations and field names (if in a struct), and performs a deep write, including the contents of any containers encountered. | |
IonWriter from an output stream.
Essentially used as a polymorphic constructor.
| Modifier and Type | Method and Description |
|---|---|
| public IonWriter |
| create | back to summary |
|---|---|
| public IonWriter create(final OutputStream out) throws IOException | |
ByteArrayOutputStream implementation to get access to the buffer.
| Access | Constructor and Description |
|---|---|
| private |
| Modifier and Type | Method and Description |
|---|---|
| public byte[] |
| InternalByteArrayOutputStream | back to summary |
|---|---|
| private InternalByteArrayOutputStream() | |
| bytes | back to summary |
|---|---|
| public byte[] bytes() | |