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)