Package ru.bitel.bgbilling.apps.cashcheck.frk.utils

# Class FrkUtils

java.lang.Object
ru.bitel.bgbilling.apps.cashcheck.frk.utils.FrkUtils

    public class FrkUtils
    extends java.lang.Object

- ## Nested Class Summary

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

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `FrkUtils()` |

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `protected static java.math.BigDecimal` | `_roundSum​(java.math.BigDecimal summa)` |
  `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` | `formatDateTime​(java.time.LocalDateTime datetime)` |
  `static java.lang.String` | `formatMDE​(long total)` | Конвертация суммы в МДЕ (целое число) в сумму руб-коп (строкой)
  `static java.lang.String` | `getExceptionMessage​(java.lang.Throwable t, java.lang.Class<?>[] noIncludeClassnameExceptions)` | Превращатель вложенных экзепшенов в более или менее приличное сообщение.
  `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 FrkUtils.CommandCheckParameters` | `processCommandCheckParameters​(java.lang.String[] parameters, org.apache.logging.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`

- ## Constructor Details

  - ### FrkUtils

    public FrkUtils()

- ## Method Details

  - ### parseInt

    public static int parseInt​(java.lang.String val) throws ru.bitel.bgbilling.apps.cashcheck.frk.server.DriverException
    Разбор целого числа (делано для паролей). Использовать в драйверах only, ибо генерирует его экзепшен.
    Parameters:
      `val` - значение
    Returns:
      целое число
    Throws:
      `ru.bitel.bgbilling.apps.cashcheck.frk.server.DriverException` - если число нельзя преобразовать

  - ### parseLong

    public static long parseLong​(java.lang.String val) throws ru.bitel.bgbilling.apps.cashcheck.frk.server.DriverException
    Throws:
      `ru.bitel.bgbilling.apps.cashcheck.frk.server.DriverException`

  - ### parseBigDecimal

    public static java.math.BigDecimal parseBigDecimal​(java.lang.String val) throws ru.bitel.bgbilling.apps.cashcheck.frk.server.DriverException
    Разбор BigDecimal. Использовать в драйверах only.
    Parameters:
      `val` - значение
    Returns:
      BigDecimal-число
    Throws:
      `ru.bitel.bgbilling.apps.cashcheck.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, java.lang.Class<?>[] noIncludeClassnameExceptions)
    Превращатель вложенных экзепшенов в более или менее приличное сообщение. Например, тройная вложенность превратится в:

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

    Можно включать имена классов (делается через toString), можно для некоторых не включать (для красоты сообщения) — берётся getMessage, а если его нет, то краткое имя класса экзепшена.
    Parameters:
      `t` - исходный тровейбл
      `noIncludeClassnameExceptions` - массив .class экхепшенов для которых не включать имена классов в цепочку сообщений
    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 - падает при проблемах

  - ### _roundSum

    protected static java.math.BigDecimal _roundSum​(java.math.BigDecimal summa)

  - ### processCommandCheckParameters

    public static FrkUtils.CommandCheckParameters processCommandCheckParameters​(java.lang.String[] parameters, org.apache.logging.log4j.Logger logger) throws ru.bitel.bgbilling.apps.cashcheck.frk.server.DriverException
    Разбирает параметры команды "check". Заполеняет переданный массив CheckLine. И вычисляет сумму общую по чеку. Первые два параметра не трогает. Заполняет последовательность вида чека строка+платёж, так и доп.параметры чека - налог, тип платежа, ОФД-инфу всякую итд. Вынесен общий код, вот так немного криво вынесен. По идее надо было наследовать итд, но архитектура к тому моменту другая была. Надо рефакторить на досуге.
    Throws:
      `ru.bitel.bgbilling.apps.cashcheck.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)

  - ### formatDateTime

    public static java.lang.String formatDateTime​(java.time.LocalDateTime datetime)