Package xyz.cofe.text

Class EndLineReWriter

  • All Implemented Interfaces:
    java.io.Closeable, java.io.Flushable, java.lang.Appendable, java.lang.AutoCloseable
    Direct Known Subclasses:
    PrefixWriter

    public class EndLineReWriter
    extends java.io.Writer
    Преобразовывает известные символы переводы строк (Windows,Linux,Mac,...) в указанную форму.

    Пример, исходная строка:
    "linux\nMac\rWindows\r\nOther\n\r..."

    Будет переведена как, если указана форма Linux (\n):
    "linux\nMac\nWindows\nOther\n..."
    Author:
    gocha
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.lang.String endl
      Символы перевода строк
      protected java.util.function.Function<java.lang.String,​java.lang.String> lineConvertor
      Функция преобразование строки.
      protected java.io.Writer writer
      сюда записывается преобразованный текст
      • Fields inherited from class java.io.Writer

        lock
    • Constructor Summary

      Constructors 
      Constructor Description
      EndLineReWriter​(java.io.Writer writer)
      Конструктор
      EndLineReWriter​(java.io.Writer writer, java.lang.String endl)
      Конструктор
      EndLineReWriter​(java.io.Writer writer, EndLine endl)
      Конструктор
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()  
      void flush()  
      java.lang.String getEndl()
      Символы перевода строк в которые необходимо перевести обнаруженные
      EndLine getEndLine()
      Символы перевода строк в которые необходимо перевести обнаруженные
      protected java.lang.StringBuilder getLineBuffer()
      Буфер текущей строки строки
      java.util.function.Function<java.lang.String,​java.lang.String> getLineConvertor()
      Указываеют функцию преобразования строки
      protected void lineBufferAppend​(char c)
      Добавить символ в буфер строки
      protected void lineBufferFlush​(boolean forceConvert)
      Сброс буфера текущей строки
      void setEndl​(java.lang.String endl)
      Указывает символы перевода строк в которые необходимо перевести обнаруженные
      void setEndLine​(EndLine endline)
      Указывает символы перевода строк в которые необходимо перевести обнаруженные
      void setLineConvertor​(java.util.function.Function<java.lang.String,​java.lang.String> newLineConv)
      Указываеют функцию преобразования строки
      void write​(char[] cbuf, int off, int len)  
      protected void writeChar​(char c0)
      Записывает символ в поток
      protected void writeEndLine()
      Записывает перевод строки в поток
      protected void writeEndLine​(char[] cbuff, int coff, int clen, char[] newlineChar, int nlOff)
      Записывает перевод строки в поток
      • 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

      • writer

        protected java.io.Writer writer
        сюда записывается преобразованный текст
      • endl

        protected java.lang.String endl
        Символы перевода строк
      • lineConvertor

        protected java.util.function.Function<java.lang.String,​java.lang.String> lineConvertor
        Функция преобразование строки. Может использования для добавления префикса или еще каких либо действий
    • Constructor Detail

      • EndLineReWriter

        public EndLineReWriter​(java.io.Writer writer)
        Конструктор
        Parameters:
        writer - сюда записывается преобразованный текст
      • EndLineReWriter

        public EndLineReWriter​(java.io.Writer writer,
                               java.lang.String endl)
        Конструктор
        Parameters:
        writer - сюда записывается преобразованный текст
        endl - Символы перевода строк
      • EndLineReWriter

        public EndLineReWriter​(java.io.Writer writer,
                               EndLine endl)
        Конструктор
        Parameters:
        writer - сюда записывается преобразованный текст
        endl - Символы перевода строк
    • Method Detail

      • getEndl

        public java.lang.String getEndl()
        Символы перевода строк в которые необходимо перевести обнаруженные
        Returns:
        целевые символы перевода строк
      • setEndl

        public void setEndl​(java.lang.String endl)
        Указывает символы перевода строк в которые необходимо перевести обнаруженные
        Parameters:
        endl - целевые символы перевода строк
      • setEndLine

        public void setEndLine​(EndLine endline)
        Указывает символы перевода строк в которые необходимо перевести обнаруженные
        Parameters:
        endline - целевые символы перевода строк
      • getEndLine

        public EndLine getEndLine()
        Символы перевода строк в которые необходимо перевести обнаруженные
        Returns:
        целевые символы перевода строк. Вычисляет на основании совпадения свойства endl, если нет совпадения, то возвращает null.
      • getLineBuffer

        protected java.lang.StringBuilder getLineBuffer()
        Буфер текущей строки строки
        Returns:
        буфер
      • getLineConvertor

        public java.util.function.Function<java.lang.String,​java.lang.String> getLineConvertor()
        Указываеют функцию преобразования строки
        Returns:
        функция конвертирования
      • setLineConvertor

        public void setLineConvertor​(java.util.function.Function<java.lang.String,​java.lang.String> newLineConv)
        Указываеют функцию преобразования строки
        Parameters:
        newLineConv - функция конвертирования
      • lineBufferFlush

        protected void lineBufferFlush​(boolean forceConvert)
                                throws java.io.IOException
        Сброс буфера текущей строки
        Parameters:
        forceConvert - true - Конвертировать строку без учета длины буфера
        Throws:
        java.io.IOException - Ошибка IO
      • lineBufferAppend

        protected void lineBufferAppend​(char c)
        Добавить символ в буфер строки
        Parameters:
        c - символ
      • 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
      • writeEndLine

        protected void writeEndLine()
                             throws java.io.IOException
        Записывает перевод строки в поток
        Throws:
        java.io.IOException - Ошибка IO
      • writeEndLine

        protected void writeEndLine​(char[] cbuff,
                                    int coff,
                                    int clen,
                                    char[] newlineChar,
                                    int nlOff)
                             throws java.io.IOException
        Записывает перевод строки в поток
        Parameters:
        cbuff - Буффер байтов
        coff - Смещение начала текста в буфере
        clen - Размер текста
        newlineChar - Размер символы перевода строк
        nlOff - Смещение в буфере символов перевода строк
        Throws:
        java.io.IOException - Ошибка IO
      • writeChar

        protected void writeChar​(char c0)
                          throws java.io.IOException
        Записывает символ в поток
        Parameters:
        c0 - Символ
        Throws:
        java.io.IOException - Ошибка IO
      • flush

        public void flush()
                   throws java.io.IOException
        Specified by:
        flush in interface java.io.Flushable
        Specified by:
        flush in class java.io.Writer
        Throws:
        java.io.IOException
      • close

        public void close()
                   throws java.io.IOException
        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