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
- байт в виде intn
- номер бита (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 или 0BCF224BA2delimeter
- - разделитель, если он нужен- Returns:
-
formatDate
public static java.lang.String formatDate(java.time.LocalDate date) -
formatDateTime
public static java.lang.String formatDateTime(java.time.LocalDateTime datetime)
-