- java.lang.Object
-
- java.io.Writer
-
- org.apache.johnzon.core.Snippet.PassthroughWriter
-
- org.apache.johnzon.core.Snippet.Buffer.SnippetWriter
-
- All Implemented Interfaces:
java.io.Closeable,java.io.Flushable,java.lang.Appendable,java.lang.AutoCloseable,Buffered
- Enclosing class:
- Snippet.Buffer
class Snippet.Buffer.SnippetWriter extends Snippet.PassthroughWriter implements Buffered
Specialized Writer with three internal states: Writing, Completed, Truncated. When there is still space left for more json, the state will be Writing If the last write brought is exactly to the end of the max length, the state will be Completed. If the last write brought us over the max length, the state will be Truncated.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) classSnippet.Buffer.SnippetWriter.CompletedSignifies the last write was fully written, but there is no more space for future writes.(package private) classSnippet.Buffer.SnippetWriter.TruncatedSignifies the last write was not completely written and there was no more space for this or future writes.(package private) classSnippet.Buffer.SnippetWriter.Writing
-
Field Summary
Fields Modifier and Type Field Description private java.io.ByteArrayOutputStreambufferprivate intmaxprivate Snippet.PassthroughWritermode
-
Constructor Summary
Constructors Constructor Description SnippetWriter(int max)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intbufferSize()The buffer size used by this stream while reading input or before writing output to the underlying stream.voidclose()voidflush()java.lang.Stringget()booleanisTruncated()booleanterminate()Calling this method implies the need to continue writing and a question on if that is ok.voidwrite(char[] cbuf, int off, int len)
-
-
-
Field Detail
-
buffer
private final java.io.ByteArrayOutputStream buffer
-
max
private final int max
-
mode
private Snippet.PassthroughWriter mode
-
-
Method Detail
-
get
public java.lang.String get()
-
bufferSize
public int bufferSize()
Description copied from interface:BufferedThe buffer size used by this stream while reading input or before writing output to the underlying stream.- Specified by:
bufferSizein interfaceBuffered- Returns:
- the size of the buffer
-
terminate
public boolean terminate()
Calling this method implies the need to continue writing and a question on if that is ok. It impacts internal state in the same way as calling a write method.- Returns:
- true if no more writes are possible
-
isTruncated
public boolean isTruncated()
-
write
public void write(char[] cbuf, int off, int len) throws java.io.IOException- Specified by:
writein classjava.io.Writer- Throws:
java.io.IOException
-
flush
public void flush() throws java.io.IOException- Specified by:
flushin interfacejava.io.Flushable- Overrides:
flushin classSnippet.PassthroughWriter- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Overrides:
closein classSnippet.PassthroughWriter- Throws:
java.io.IOException
-
-