Package xyz.cofe.text

Class BytesDump

java.lang.Object
xyz.cofe.text.BytesDump

public class BytesDump
extends java.lang.Object
Дамп байт массива
Пример
 byte[] bytes = (
     "0123456789abcdef _ABCDEFG"
 ).getBytes(StandardCharsets.ISO_8859_1);

 BytesDump dump = new BytesDump.Builder().relative( decoder -> {
     decoder
         .name(0, 2, "head")
         .decode(4, bytes1 -> new String(bytes1,StandardCharsets.ISO_8859_1));
 }).build();

 System.out.println(dump.dump(bytes));
 
Вывод:
        0|30 31                                          |head
        2|      32 33 34 35                              |2345
        6|                  36 37 38 39 61 62 63 64 65 66
       10|20 5f 41 42 43 44 45 46 47
 
  • Nested Class Summary

    Nested Classes 
    Modifier and Type Class Description
    static class  BytesDump.Builder
    "Строитель"
    static class  BytesDump.Decode
    Декодирование очередной порции байтов
    static class  BytesDump.Decoded
    Расшифровка набора байт
  • Field Summary

    Fields 
    Modifier and Type Field Description
    protected int defBytesPerLine  
    protected java.lang.String descDelimiter  
    protected int offsetAlign  
    protected java.lang.String offsetDelimiter  
    protected int offsetRadix  
    protected int offsetWidth
    Кол-во символом отведенных для смещения
    protected java.util.function.Function<BytesDump.Decode,​java.util.Optional<BytesDump.Decoded>> preview  
    protected int ptrAlign  
  • Constructor Summary

    Constructors 
    Constructor Description
    BytesDump()  
  • Method Summary

    Modifier and Type Method Description
    java.lang.String dump​(byte[] buff)
    Дамп байтов
    java.lang.String dump​(byte[] buff, int off, int len)
    Дамп байтов
    int getDefBytesPerLine()
    Возвращает кол-во байт на линию по умолчанию
    java.lang.String getDescDelimiter()  
    int getOffsetAlign()
    Возвращает как выравнивать начала массива байт, по какому размеру
    java.lang.String getOffsetDelimiter()  
    int getOffsetRadix()  
    int getOffsetWidth()
    Кол-во символом отведенных для смещения
    java.util.function.Function<BytesDump.Decode,​java.util.Optional<BytesDump.Decoded>> getPreview()
    Указывает функцию дешифровки порции байт.
    int getPtrAlign()
    Возвращает как выравнивать текущую позицию, по какому размеру
    void setDefBytesPerLine​(int defBytesPerLine)
    Указывает кол-во байт на линию по умолчанию
    void setDescDelimiter​(java.lang.String descDelimiter)  
    void setOffsetAlign​(int v)
    Указывает как выравнивать начала массива байт, по какому размеру
    void setOffsetDelimiter​(java.lang.String offsetDelimiter)  
    void setOffsetRadix​(int offsetRadix)  
    void setOffsetWidth​(int offsetWidth)
    Кол-во символом отведенных для смещения
    void setPreview​(java.util.function.Function<BytesDump.Decode,​java.util.Optional<BytesDump.Decoded>> preview)
    Указывает функцию дешифровки порции байт
    void setPtrAlign​(int v)
    Указывает как выравнивать текущую позицию, по какому размеру

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

  • Method Details

    • getOffsetAlign

      public int getOffsetAlign()
      Возвращает как выравнивать начала массива байт, по какому размеру
      Returns:
      выравнивание
    • setOffsetAlign

      public void setOffsetAlign​(int v)
      Указывает как выравнивать начала массива байт, по какому размеру
      Parameters:
      v - выравнивание
    • getPtrAlign

      public int getPtrAlign()
      Возвращает как выравнивать текущую позицию, по какому размеру
      Returns:
      выравнивание
    • setPtrAlign

      public void setPtrAlign​(int v)
      Указывает как выравнивать текущую позицию, по какому размеру
      Parameters:
      v - выравнивание
    • getOffsetWidth

      public int getOffsetWidth()
      Кол-во символом отведенных для смещения
      Returns:
      Кол-во символов
    • setOffsetWidth

      public void setOffsetWidth​(int offsetWidth)
      Кол-во символом отведенных для смещения
      Parameters:
      offsetWidth - Кол-во символов
    • getOffsetRadix

      public int getOffsetRadix()
    • setOffsetRadix

      public void setOffsetRadix​(int offsetRadix)
    • getOffsetDelimiter

      public java.lang.String getOffsetDelimiter()
    • setOffsetDelimiter

      public void setOffsetDelimiter​(java.lang.String offsetDelimiter)
    • getDescDelimiter

      public java.lang.String getDescDelimiter()
    • setDescDelimiter

      public void setDescDelimiter​(java.lang.String descDelimiter)
    • getDefBytesPerLine

      public int getDefBytesPerLine()
      Возвращает кол-во байт на линию по умолчанию
      Returns:
      кол-во байт на линию по умолчанию
    • setDefBytesPerLine

      public void setDefBytesPerLine​(int defBytesPerLine)
      Указывает кол-во байт на линию по умолчанию
      Parameters:
      defBytesPerLine - кол-во байт на линию по умолчанию
    • getPreview

      public java.util.function.Function<BytesDump.Decode,​java.util.Optional<BytesDump.Decoded>> getPreview()
      Указывает функцию дешифровки порции байт.
       dump.setPreview( d -> {
           if( d.getPointer()==2 ) return d.respone(2,"2 chars: "+new String(d.getBytes(),d.getPointer(),2,StandardCharsets.ISO_8859_1));
           if( d.getPointer()==4 ) return d.respone(4,"4 chars: "+new String(d.getBytes(),d.getPointer(),4,StandardCharsets.ISO_8859_1));
           return Optional.empty();
       });
       
      Returns:
      функция дешифровки
    • setPreview

      public void setPreview​(java.util.function.Function<BytesDump.Decode,​java.util.Optional<BytesDump.Decoded>> preview)
      Указывает функцию дешифровки порции байт
      Parameters:
      preview - функция дешифровки
    • dump

      public java.lang.String dump​(byte[] buff)
      Дамп байтов
      Parameters:
      buff - байт-массив
      Returns:
      Дамп
    • dump

      public java.lang.String dump​(byte[] buff, int off, int len)
      Дамп байтов
      Parameters:
      buff - байт-массив
      off - смещение в массиве
      len - кол-во байт
      Returns:
      Дамп