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 $SpecializedWriterthat's pooled in a $ThreadLocal. It's backed by a $StringBuilderso 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>POOLprivate java.lang.StringBuildersb
-
Constructor Summary
Constructors Modifier Constructor Description privatePooledSpecializedStringWriter()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()voidflush()static PooledSpecializedStringWriterpooled()java.lang.StringtoString()voidwrite(char[] cbuf, int off, int len)voidwriteSpecialized(byte b)voidwriteSpecialized(char c)voidwriteSpecialized(double d)voidwriteSpecialized(float f)voidwriteSpecialized(int i)voidwriteSpecialized(long l)voidwriteSpecialized(short s)voidwriteSpecialized(java.lang.String s)-
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:
writeSpecializedin interfaceSpecializedWriter
-
writeSpecialized
public void writeSpecialized(long l)
- Specified by:
writeSpecializedin interfaceSpecializedWriter
-
writeSpecialized
public void writeSpecialized(double d)
- Specified by:
writeSpecializedin interfaceSpecializedWriter
-
writeSpecialized
public void writeSpecialized(float f)
- Specified by:
writeSpecializedin interfaceSpecializedWriter
-
writeSpecialized
public void writeSpecialized(short s)
- Specified by:
writeSpecializedin interfaceSpecializedWriter
-
writeSpecialized
public void writeSpecialized(byte b)
- Specified by:
writeSpecializedin interfaceSpecializedWriter
-
writeSpecialized
public void writeSpecialized(char c)
- Specified by:
writeSpecializedin interfaceSpecializedWriter
-
writeSpecialized
public void writeSpecialized(java.lang.String s)
- Specified by:
writeSpecializedin interfaceSpecializedWriter
-
write
public void write(char[] cbuf, int off, int len)- Specified by:
writein classjava.io.Writer
-
flush
public void flush()
- Specified by:
flushin interfacejava.io.Flushable- Specified by:
flushin classjava.io.Writer
-
close
public void close()
- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Specified by:
closein classjava.io.Writer
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
pooled
public static PooledSpecializedStringWriter pooled()
-
-