ru.bitel.frk.utils

## Class FrkUtils

- java.lang.Object
- - ru.bitel.frk.utils.FrkUtils

-     public class FrkUtils
      extends java.lang.Object

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `FrkUtils.CommandCheckParameters`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `cutTextCommand` строка которая символизирует отрезку чека в команде драйвера printtext

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FrkUtils()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `static java.util.Set<java.lang.Class<?>>` | `driversTouch()` Ооочень хитрый поиск по каталогам с драйверами...
    `static java.lang.String` | `fn(int num, int width)` дополняет число нулями до указанной ширины
    `static java.lang.String` | `formatDate(java.time.LocalDate date)`
    `static java.lang.String` | `formatDate(java.time.LocalDateTime datetime)`
    `static java.lang.String` | `formatMDE(long total)` Конвертация суммы в МДЕ (целое число) в сумму руб-коп (строкой)
    `static java.lang.String` | `getExceptionMessage(java.lang.Throwable t, boolean includeClassname)` Превращатель вложенных экзепшенов в более или менее приличное сообщение.
    `static java.lang.String` | `getMemoryStatus()` в отличие от Utils.memoryStatus() короче и без переносов строк
    `static java.lang.String` | `getUpTime(long _startTime)`
    `static byte[]` | `hexStringToBytes(java.lang.String value)` Преобразование строки вида "02 AB 03" в массив байтов.
    `static void` | `main(java.lang.String[] args)`
    `static byte` | `makeByte(int bit7, int bit6, int bit5, int bit4, int bit3, int bit2, int bit1, int bit0)`
    `static java.math.BigDecimal` | `parseBigDecimal(java.lang.String val)` Разбор BigDecimal.
    `static int` | `parseInt(java.lang.String val)` Разбор целого числа (делано для паролей).
    `static long` | `parseLong(java.lang.String val)`
    `static java.math.BigDecimal` | `processCommandCheckClientsumma(java.lang.String parameter1)` Deprecated.
    `static FrkUtils.CommandCheckParameters` | `processCommandCheckParameters(java.lang.String[] parameters, java.util.List<Check.CheckLine> lines, org.apache.log4j.Logger logger)` Разбирает параметры команды "check".
    `static void` | `serialize(org.w3c.dom.Node node, javax.xml.transform.Result result, java.lang.String encoding, boolean indent)` в отличие от аналога в XMLUtils - падает при проблемах
    `static java.lang.String` | `serializeToString(org.w3c.dom.Document xml)`
    `static java.lang.String` | `spaces(int width)` нужное кол-во пробелов
    `static byte[]` | `stringToBytes(java.lang.String s, java.lang.String delimeter)` Конвертирование HEX строки вида 0bcf224ba2 или 0BCF224BA2 или 0B-CF-22-4B-A2 в массив байт.
    `static boolean` | `testBit(byte b, int n)` Установлен ли бит в байте.
    `static boolean` | `testBit(int b, int n)` Установлен ли бит в байте (представленный интом)

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### cutTextCommand

          public static final java.lang.String cutTextCommand

      строка которая символизирует отрезку чека в команде драйвера printtext
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### FrkUtils

          public FrkUtils()

  - ### Method Detail

    - #### parseInt

          public static int parseInt(java.lang.String val)
                              throws ru.bitel.frk.server.DriverException

      Разбор целого числа (делано для паролей). Использовать в драйверах only, ибо генерирует его экзепшен.
      Parameters:
        `val` - значение
      Returns:
        целое число
      Throws:
        `ru.bitel.frk.server.DriverException` - если число нельзя преобразовать

    - #### parseLong

          public static long parseLong(java.lang.String val)
                                throws ru.bitel.frk.server.DriverException

      Throws:
        `ru.bitel.frk.server.DriverException`

    - #### parseBigDecimal

          public static java.math.BigDecimal parseBigDecimal(java.lang.String val)
                                                      throws ru.bitel.frk.server.DriverException

      Разбор BigDecimal. Использовать в драйверах only.
      Parameters:
        `val` - значение
      Returns:
        BigDecimal-число
      Throws:
        `ru.bitel.frk.server.DriverException` - если число нельзя преобразовать

    - #### testBit

          public static boolean testBit(byte b,
                                        int n)

      Установлен ли бит в байте.
      Parameters:
        `b` - байт
        `n` - номер бита (0..7)
      Returns:
        true - установлен, false - снят.

    - #### testBit

          public static boolean testBit(int b,
                                        int n)

      Установлен ли бит в байте (представленный интом)
      Parameters:
        `b` - байт в виде int
        `n` - номер бита (0..7)
      Returns:
        true - установлен, false - снят.

    - #### makeByte

          public static byte makeByte(int bit7,
                                      int bit6,
                                      int bit5,
                                      int bit4,
                                      int bit3,
                                      int bit2,
                                      int bit1,
                                      int bit0)

    - #### fn

          public static final java.lang.String fn(int num,
                                                  int width)

      дополняет число нулями до указанной ширины

    - #### spaces

          public static final java.lang.String spaces(int width)

      нужное кол-во пробелов

    - #### formatMDE

          public static java.lang.String formatMDE(long total)

      Конвертация суммы в МДЕ (целое число) в сумму руб-коп (строкой)
      Parameters:
        `total` - сумма в МДЕ
      Returns:
        строка-сумма

    - #### driversTouch

          public static java.util.Set<java.lang.Class<?>> driversTouch()

      Ооочень хитрый поиск по каталогам с драйверами... Ищем в пакете, по всем контекстам, все классы, имплементящие нужны нам интерфаце.

    - #### getUpTime

          public static java.lang.String getUpTime(long _startTime)

    - #### getMemoryStatus

          public static final java.lang.String getMemoryStatus()

      в отличие от Utils.memoryStatus() короче и без переносов строк

    - #### getExceptionMessage

          public static java.lang.String getExceptionMessage(java.lang.Throwable t,
                                                             boolean includeClassname)

      Превращатель вложенных экзепшенов в более или менее приличное сообщение. Например, тройная вложенность превратится в:

           Ошибка трансформации или печати <= ExceptionInInitializerError <= fop config not available

      Parameters:
        `t` - исходный тровейбл
        `includeClassname` - true — включать имена классов (делается через toString), false — берётся getMessage, а если его нет, то краткое имя класса экзепшена.
      Returns:
        строка-описание.

    - #### serializeToString

          public static java.lang.String serializeToString(org.w3c.dom.Document xml)

    - #### serialize

          public static void serialize(org.w3c.dom.Node node,
                                       javax.xml.transform.Result result,
                                       java.lang.String encoding,
                                       boolean indent)

      в отличие от аналога в XMLUtils - падает при проблемах

    - #### processCommandCheckParameters

          public static FrkUtils.CommandCheckParameters processCommandCheckParameters(java.lang.String[] parameters,
                                                                                      java.util.List<Check.CheckLine> lines,
                                                                                      org.apache.log4j.Logger logger)
                                                                               throws ru.bitel.frk.server.DriverException

      Разбирает параметры команды "check". Заполеняет переданный массив CheckLine. И вычисляет сумму общую по чеку. Первые два параметра не трогает. Заполняет последовательность вида чека строка+платёж, так и доп.параметры чека - налог, тип платежа, ОФД-инфу всякую итд. Вынесен общий код, вот так немного криво вынесен. По идее надо было наследовать итд, но архитектура к тому моменту другая была. Надо рефакторить на досуге.
      Throws:
        `ru.bitel.frk.server.DriverException`

    - #### processCommandCheckClientsumma

          @Deprecated
          public static java.math.BigDecimal processCommandCheckClientsumma(java.lang.String parameter1)
                                                                                 throws ru.bitel.frk.server.DriverException

      Deprecated.
      Разбирает параметр1 команды "check". Т.к. может быть сумма или сумма+тип оплаты. TODO убрать к концу 2018
      Parameters:
        `parameter1` - строка суммы или сумма;типоплаты (старые варианты для обратной совместимости только)
      Returns:
        CommandCheckClientsumma с двумя значениями (или null если не заданы)
      Throws:
        `ru.bitel.frk.server.DriverException`

    - #### main

          public static void main(java.lang.String[] args)
                           throws java.lang.Exception

      Throws:
        `java.lang.Exception`

    - #### hexStringToBytes

          public static byte[] hexStringToBytes(java.lang.String value)

      Преобразование строки вида "02 AB 03" в массив байтов.
      Parameters:
        `value` - String
      Returns:
        byte[]

    - #### stringToBytes

          public static byte[] stringToBytes(java.lang.String s,
                                             java.lang.String delimeter)

      Конвертирование HEX строки вида 0bcf224ba2 или 0BCF224BA2 или 0B-CF-22-4B-A2 в массив байт.
      Parameters:
        `s` - строка вида 0bcf224ba2 или 0BCF224BA2
        `delimeter` - - разделитель, если он нужен
      Returns:

    - #### formatDate

          public static java.lang.String formatDate(java.time.LocalDate date)

    - #### formatDate

          public static java.lang.String formatDate(java.time.LocalDateTime datetime)