Package xyz.cofe.text

Class 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

      All Methods Instance Methods Concrete Methods 
      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 Detail

      • output

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

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

      • StackWriter

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

      • 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