Package xyz.cofe.text

Class StackWriter

java.lang.Object
java.io.Writer
xyz.cofe.text.StackWriter
All Implemented Interfaces:
java.io.Closeable, java.io.Flushable, java.lang.Appendable, java.lang.AutoCloseable

public class StackWriter
extends java.io.Writer
Writer с поддержкой стековой памяти
Author:
gocha
  • Field Summary

    Fields 
    Modifier and Type Field Description
    protected java.io.Writer output
    Текущий writer
    protected java.util.Stack<java.io.Writer> stack
    Стек памяти writer-ов

    Fields inherited from class java.io.Writer

    lock
  • Constructor Summary

    Constructors 
    Constructor Description
    StackWriter​(java.io.Writer output)
    Конструктор
  • Method Summary

    Modifier and Type Method Description
    void close()
    Вызывает flush(), а затем в обратной последовательности close() для стека writer-ов.
    void flush()
    Скидывает содежимое всего стека в основной writer, в той же последовательности что и соот. вызовы write(...)
    java.util.Stack<java.io.Writer> getStack()
    Указывает стек памяти writer-ов
    java.lang.String pop()
    Извлекает из текущего writer-а что было напечатано, восстанавливает из стека текущий writer.
    void push()
    Сохраняет в стеке текущий writer.
    void write​(char[] cbuf, int off, int len)  

    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, toString, wait, wait, wait
  • Field Details

    • output

      protected java.io.Writer output
      Текущий writer
    • stack

      protected java.util.Stack<java.io.Writer> stack
      Стек памяти writer-ов
  • Constructor Details

    • StackWriter

      public StackWriter​(java.io.Writer output)
      Конструктор
      Parameters:
      output - куда производить вывод
  • Method Details

    • getStack

      public java.util.Stack<java.io.Writer> getStack()
      Указывает стек памяти writer-ов
      Returns:
      Стек памяти writer-ов
    • push

      public void push()
      Сохраняет в стеке текущий writer. Создает новый writer в памяти и устанавливает как текущий.
    • pop

      public java.lang.String pop()
      Извлекает из текущего writer-а что было напечатано, восстанавливает из стека текущий writer. Что было в предыдущем writer-е НЕ помещается в текущий writer.
      Returns:
      Что было напечатано от предыдущего вызова push();
    • write

      public void write​(char[] cbuf, int off, int len) throws java.io.IOException
      Specified by:
      write in class java.io.Writer
      Throws:
      java.io.IOException
    • flush

      public void flush() throws java.io.IOException
      Скидывает содежимое всего стека в основной writer, в той же последовательности что и соот. вызовы write(...)
      Specified by:
      flush in interface java.io.Flushable
      Specified by:
      flush in class java.io.Writer
      Throws:
      java.io.IOException - Ошибка IO
    • close

      public void close() throws java.io.IOException
      Вызывает flush(), а затем в обратной последовательности close() для стека writer-ов. После чего удаляет содержимое стека.
      Specified by:
      close in interface java.lang.AutoCloseable
      Specified by:
      close in interface java.io.Closeable
      Specified by:
      close in class java.io.Writer
      Throws:
      java.io.IOException - Ошибка IO