Module com.github.rvesse.airline.io
Class AnsiOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- java.io.FilterOutputStream
-
- java.io.PrintStream
-
- com.github.rvesse.airline.io.output.AnsiOutputStream
-
- All Implemented Interfaces:
java.io.Closeable,java.io.Flushable,java.lang.Appendable,java.lang.AutoCloseable
- Direct Known Subclasses:
ColorizedOutputStream
public abstract class AnsiOutputStream extends java.io.PrintStreamAn output stream that supports customized output via ANSI control codes
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<OutputStreamControlTracker>controls
-
Constructor Summary
Constructors Constructor Description AnsiOutputStream(java.io.OutputStream output)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidapplyAll()Method which applies any necessary controls to the streamvoidclose()voidregisterControl(OutputStreamControlTracker control)Registers a controlvoidregisterControls(OutputStreamControlTracker... controls)Registers some controlsvoidreset(boolean full)Resets the stream to the default state i.e.protected voidresetAll()Method which resets the state of any controls that have been previously enabled and applied to the streamvoidwrite(byte[] b)voidwrite(byte[] b, int off, int len)voidwrite(int b)
-
-
-
Field Detail
-
controls
private final java.util.List<OutputStreamControlTracker> controls
-
-
Method Detail
-
registerControl
public final void registerControl(OutputStreamControlTracker control)
Registers a controlThis method can be useful if you wish to add additional controls beyond those provided by a specific class derived from this abstract class.
- Parameters:
control- Control
-
registerControls
public final void registerControls(OutputStreamControlTracker... controls)
Registers some controls- Parameters:
controls- Controls
-
write
public void write(int b)
- Overrides:
writein classjava.io.PrintStream
-
write
public void write(byte[] b) throws java.io.IOException- Overrides:
writein classjava.io.FilterOutputStream- Throws:
java.io.IOException
-
write
public void write(byte[] b, int off, int len)- Overrides:
writein classjava.io.PrintStream
-
applyAll
protected final void applyAll()
Method which applies any necessary controls to the stream
-
reset
public void reset(boolean full)
Resets the stream to the default state i.e. disables all controls that may previously have been applied such as colors, text decorations etc- Parameters:
full- If true do a full graphics reset in addition to resetting the individual controls
-
close
public void close()
- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Overrides:
closein classjava.io.PrintStream
-
resetAll
protected final void resetAll()
Method which resets the state of any controls that have been previously enabled and applied to the stream
-
-