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 classFrkUtils.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.Stringfn(int num, int width)дополняет число нулями до указанной шириныstatic java.lang.StringformatDate(java.time.LocalDate date)static java.lang.StringformatDateTime(java.time.LocalDateTime datetime)static java.lang.StringformatMDE(long total)Конвертация суммы в МДЕ (целое число) в сумму руб-коп (строкой)static java.lang.StringgetExceptionMessage(java.lang.Throwable t, java.lang.Class<?>[] noIncludeClassnameExceptions)Превращатель вложенных экзепшенов в более или менее приличное сообщение.static java.lang.StringgetMemoryStatus()в отличие от Utils.memoryStatus() короче и без переносов строкstatic java.lang.StringgetUpTime(long _startTime)static byte[]hexStringToBytes(java.lang.String value)Преобразование строки вида "02 AB 03" в массив байтов.static voidmain(java.lang.String[] args)static bytemakeByte(int bit7, int bit6, int bit5, int bit4, int bit3, int bit2, int bit1, int bit0)static java.math.BigDecimalparseBigDecimal(java.lang.String val)Разбор BigDecimal.static intparseInt(java.lang.String val)Разбор целого числа (делано для паролей).static longparseLong(java.lang.String val)static FrkUtils.CommandCheckParametersprocessCommandCheckParameters(java.lang.String[] parameters, org.apache.logging.log4j.Logger logger)Разбирает параметры команды "check".static voidserialize(org.w3c.dom.Node node, javax.xml.transform.Result result, java.lang.String encoding, boolean indent)в отличие от аналога в XMLUtils - падает при проблемахstatic java.lang.StringserializeToString(org.w3c.dom.Document xml)static java.lang.Stringspaces(int width)нужное кол-во пробеловstatic byte[]stringToBytes(java.lang.String s, java.lang.String delimeter)Конвертирование HEX строки вида 0bcf224ba2 или 0BCF224BA2 или 0B-CF-22-4B-A2 в массив байт.static booleantestBit(byte b, int n)Установлен ли бит в байте.static booleantestBit(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)
-