Class PooledSpecializedStringWriter
- java.lang.Object
-
- java.io.Writer
-
- io.pebbletemplates.pebble.extension.writer.PooledSpecializedStringWriter
-
- All Implemented Interfaces:
SpecializedWriter
,java.io.Closeable
,java.io.Flushable
,java.lang.Appendable
,java.lang.AutoCloseable
public class PooledSpecializedStringWriter extends java.io.Writer implements SpecializedWriter
A $SpecializedWriter
that's pooled in a $ThreadLocal
. It's backed by a $StringBuilder
so it's not threadsafe but doesn't involve synchronization. Beware that it has some limitations:- As it's backed by a $
ThreadLocal
, it might leak in environments where ClassLoaders are rebooted at runtime - It doesn't take any security measure against very large payloads that would cause underlying buffers to eat memory
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.ThreadLocal<PooledSpecializedStringWriter>
POOL
private java.lang.StringBuilder
sb
-
Constructor Summary
Constructors Modifier Constructor Description private
PooledSpecializedStringWriter()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
void
flush()
static PooledSpecializedStringWriter
pooled()
java.lang.String
toString()
void
write(char[] cbuf, int off, int len)
void
writeSpecialized(byte b)
void
writeSpecialized(char c)
void
writeSpecialized(double d)
void
writeSpecialized(float f)
void
writeSpecialized(int i)
void
writeSpecialized(long l)
void
writeSpecialized(short s)
void
writeSpecialized(java.lang.String s)
-
Methods inherited from class java.io.Writer
append, append, append, nullWriter, write, write, write, write
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface io.pebbletemplates.pebble.extension.writer.SpecializedWriter
write
-
-
-
-
Field Detail
-
POOL
private static final java.lang.ThreadLocal<PooledSpecializedStringWriter> POOL
-
sb
private java.lang.StringBuilder sb
-
-
Method Detail
-
writeSpecialized
public void writeSpecialized(int i)
- Specified by:
writeSpecialized
in interfaceSpecializedWriter
-
writeSpecialized
public void writeSpecialized(long l)
- Specified by:
writeSpecialized
in interfaceSpecializedWriter
-
writeSpecialized
public void writeSpecialized(double d)
- Specified by:
writeSpecialized
in interfaceSpecializedWriter
-
writeSpecialized
public void writeSpecialized(float f)
- Specified by:
writeSpecialized
in interfaceSpecializedWriter
-
writeSpecialized
public void writeSpecialized(short s)
- Specified by:
writeSpecialized
in interfaceSpecializedWriter
-
writeSpecialized
public void writeSpecialized(byte b)
- Specified by:
writeSpecialized
in interfaceSpecializedWriter
-
writeSpecialized
public void writeSpecialized(char c)
- Specified by:
writeSpecialized
in interfaceSpecializedWriter
-
writeSpecialized
public void writeSpecialized(java.lang.String s)
- Specified by:
writeSpecialized
in interfaceSpecializedWriter
-
write
public void write(char[] cbuf, int off, int len)
- Specified by:
write
in classjava.io.Writer
-
flush
public void flush()
- Specified by:
flush
in interfacejava.io.Flushable
- Specified by:
flush
in classjava.io.Writer
-
close
public void close()
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Specified by:
close
in classjava.io.Writer
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
pooled
public static PooledSpecializedStringWriter pooled()
-
-