Class Utils

java.lang.Object
ru.bitel.common.Utils

public class Utils extends Object
Минимальный набор, то что действительно должно быть в utils, как в клиентском так и серверном.
работа с xml в xmlutils, работа с ip в iputils и т.д. Base64 - в отдельном классе + стримы соответствующие.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    версия биллинга в этой ветке (определение через version info не всегда возможно, да и незачем здесь)
    static final int
     
    static final long
     
    static final String
     
    static final AtomicLong
     
    static final char[]
     
    static final char[]
     
    static final int
     
    static final long
     
    static final long
     
    static final int
     
    static String
     
    static final Pattern
     
    static final Pattern
     
    static final Pattern
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static final String
    booleanToStringInt(boolean value)
    Возвращает строковое представление boolean в виде числа
    static final int
    BuToI(byte value)
    Deprecated.
    static byte[]
    Преобразование буфера байт к массиву байт.
    static byte[]
    byteBufferAsArray(ByteBuffer data, int length)
    Преобразование буфера байт к массиву байт.
    static String
    bytesToHexString(byte[] value)
    Преобразование массива байтов в строку вида "02AB03"
    static int
    bytesToInt(byte[] bytes)
    Возвращает int, полученный из массива длиной от 1 до 4 байт.
    static int
    bytesToInt(byte[] bytes, int pos, int length)
    Возвращает int, полученный из массива длиной от 1 до 4 байт.
    static long
    bytesToLong(byte[] bytes)
    Возвращает long, полученный из массива длиной от 1 до 8 байт.
    static long
    bytesToLong(byte[] bytes, int pos, int length)
    Возвращает long, полученный из массива длиной от 1 до 8 байт.
    static String
    bytesToString(byte[] value)
    Обратная к функции hexStringToBytes(String), преобразование массива байт к строке вида "02 AB 03"
    static String
    bytesToString(byte[] bytes, boolean upperCase, String delimeter)
    Преобразование массива байт в HEX строку с указанным разделителем
    static String
    charsetConvert(String value, String encoding)
    Конвертирует входную строку из кодировки ISO-8859-1 в указанную кодировку
    static String
    Проверка что все файлы указанные могут быть прочитаны.
    static boolean
    Проверка email на валидность.
    static void
    Проверка java на корректную совместимость с нашим кодом.
    static final boolean
     
    static String
    checkPath(String rawPath)
    Проверяет путь и заменяет прямые слэши на обратные.
    static <V> List<V>
    concat(List<V> a, List<V> b)
    Соединяет два листа - создает новый, с содержимым указанных листов.
    static final Object
    convert(Number number, Class<?> clazz)
     
    static final Object
    convert(Object o, Class<?> clazz)
     
    static final Object
    convert(String text, Class<?> clazz)
     
    static int
    convertBytesToInt(byte[] bytes)
    Возвращает десятичное число, полученное преобразованием шестнадцатеричного
    static long
    convertBytesToLong(byte[] bytes)
    Возвращает десятичное число, полученное преобразованием шестнадцатеричного
    static byte[]
    convertIntToBytes(int value)
    Возвращает шестнадцатеричное число (массив байтов), полученное преобразованием десятичного
    static byte[]
    convertLongToBytes(long value)
    Возвращает шестнадцатеричное число (массив байтов), полученное преобразованием десятичного
    static String
     
    static String
     
    static final long
    Преобразует строку вида "1,2,3" в маску длинного целого.
    static String
     
    static boolean
    flush(InputStream inputStream, OutputStream outputStream)
    Переброс блоками из входящего потока в исходящий.
    static String
    formatBigDecimal(BigDecimal value, int scale)
    Форматирование децимала до указанного знака после запятой, маскируется NULL.
    static String
    Форматирование децимала до второго знака после запятой, маскируется NULL.
    static String
    formatCost(float value)
    Форматирование числа с плавающей точкой до второго знака после запятой.
    static String
    formatCost(float value, int precission)
    Форматирование числа с плавающей точкой до второго знака после запятой.
    static String
    Форматирование в строку цены в стандартном виде
    static String
    formatCost(BigDecimal value, int precission)
    Форматирование в строку цены в стандартном виде
    static String
    formatCostByGrouping(BigDecimal value, int sizeGroup, int precission)
    Форматирование в строку цены с группированием.
    Напрамер если передана сумма = 349345543345, а размерность 3 то результатом будет 349 345 543 345, а для размерности 4 - 3493 4554 3360
    static String
    formatInteger(int value)
     
    static String
    formatLong(long value)
     
    static String
     
    static String
    formatSessionCost(float value)
    Форматирование стоимости с плавающей точкой до пятого знака после запятой.
    static String
    Форматирование в строку цены сессии
    static String
    formatSessionTime(int value)
     
    static String
    formatSessionTime2(int value)
     
    static List<Class<?>>
    getClassList(String packageName)
     
     
    static String
    getDigest(String value, String encoding)
    Возвращает строковое представление MD5 хэша от входной строки.
    static String
    getDigest(String value, String encoding, String algorithm)
     
    static byte[]
    getDigestBytes(byte[] value)
    Возвращает байтовое представление MD5 хэша от входного массива байтов
    static byte[]
    getDigestBytes(byte[] value, String algorithm)
     
    static List<Integer>
    getIdList(Collection<? extends Id> items)
    Получаем список id у списка сущностей, которые наследуют Id.
    static final Set<Integer>
    getIdSet(Collection<? extends Id> collection)
    Собирание списка id из списка объектов расширяющих Id.
    static final String
     
    static <E extends Enum<E> & ListItem>
    E
    getListItemEnumFromId(Class<E> enumm, int id)
    Возвращение значения енума, наследующего ListItem по коду id.
    static <E extends Enum<E> & ListItem>
    E
    getListItemEnumFromId(Class<E> enumm, int id, E def)
    Возвращение значения енума, наследующего ListItem по коду id.
    static byte[]
    getMD4Digest(byte[] input)
     
    static String
    getMD4Digest(String input, String charsetName)
    Делает md4-дайджест из строки (текстовый дайджест).
    static String
    Получение сообщения из ответа сервера.
    static String
    Список имени файлов в столбик с размерами (для сообщений, например)
    static String
    getOsJavaVersion(boolean full)
    Инфа о версии java/os в несколько строк через \n.
    static final String
     
    static String
    Генерирует уникальный идентификатор.
    static byte[]
    Преобразование строки вида "02 AB 03" в массив байтов.
    static String
    htmlEncode(String inValue, String ENCODING)
     
    static final String
    Возвращает BOM, например для utf-8 (EF BB BF), для использования в xslt чтобы файлы csv имели в начале BOM и открывалис ахсцелем искаропки.
    static boolean
     
    static final boolean
    Проверяет, является ли строка пустой, состоящей из пробельных символов или null
    static boolean
    Проверяет переданную коллекцию на пустоту или null
    static final boolean
    Проверяет, является ли строка пустой или null
    static final boolean
    isZeroFilledArray(byte[] val)
    Проверяет, заполнен ли байтовый массив целиком нулями.
    static <V> Iterable<V>
    Создает Iterable из двух Collection.
    static long
    IuTol(int value)
    Deprecated.
    static final long
    IuToL(int value)
    Deprecated.
    static final Map<String,String>
    Разбивание строк пар с разделителями между парами = и разделителями пар \n, в Map, первые элементы пар становятся ключами, вторые - значениями.
    static final Map<String,String>
    listToMap(List<String[]> pairs)
     
    static final String
    maskBlank(String value, String defaultValue)
    Возвращает входную строку тогда и только тогда, когда она не является blank строкой (см. isBlankString(String)), иначе возвращает значение по умолчанию
    static String
    Маскировка всех символов для таких строк, как пароли, логины, ключи и т.д.
    static String
    Маскирование адреса электронной почты, из адреса вида Name.Fio@domain.com возращает N**e.F*o@d****n.c*m
    static final Long
    maskNull(Long value)
    Возвращает входное значение тогда и только тогда, когда оно не равно null, иначе возвращает 0L (закешированное).
    static final String
    Преобразует входную строку в пустую, если она null
    static final BigDecimal
    Возвращает входное значение тогда и только тогда, когда оно не равно null, иначе возвращает BigDecimal.ZERO.
    static final <K> List<K>
    maskNull(List<K> value)
    Преобразует возвращает пустой список.
    static final <K> Set<K>
    maskNull(Set<K> value)
     
    static String
    maskPhoneNumber(String phone, int showDigitBegin, int showDigitEnd)
     
    static String
    maskToEnum(long mask)
    Преобразование битовой маски в строку вида 1,2,3.
    static final String
    Возвращает строку с состоянием памяти приложения и количеством потоков.
    static final String
    Инфа о памяти в виде сокращённого "use / total / max".
    static final String
    multiLetter(String letter, int count)
    Возвращает строку с продублированной определенное число раз входной строкой
    static <I> I
    newInstance(String name, Class<? extends I> clazz)
    Возвращает объект класса, заданного именем
    MD4 устарел и простым getInstance в JRE его нельзя получить, потому создан такой метод.
    static final boolean
    Проверяет, является ли строка не пустой, не состоящей из пробельных символов и не null
    static boolean
    Проверяет переданный массив на пустоту
    static boolean
    Проверяет переданную коллекцию на пустоту.
    static final boolean
    Проверяет, является ли строка не пустой и не null
    static long
    packValues(Collection<String> values, int base)
    Обратная распаковке.
    static final int
    pageCount(int count, int onPage)
    Расчёт количества страниц
    static final String
    Склеивание пар строк в единую строку с заданным разделителем пар ',' и разделителем между элементами пары '='.
    static final String
    Склеивание пар строк в единую строку с заданным разделителем пар ',' и разделителем между элементами пары '='.
    static final String
    pairToString(List<String[]> param, String pairsDelim, String pairDelim)
    Склеивание пар строк в единую строку с заданным разделителем пар и разделителем между элементами пары.
    static BigDecimal
    parseBigDecimal(String str, BigDecimal defaultValue)
    Преобразует строку в BigDecimal, и, в случае ошибки, возвращает значение по умолчанию.
    static BigDecimal
    Преобразует строку в BigDecimal, в случае ошибки кидает NumberFormatException (как оригинальный BigDecimal).
    static boolean
    Разбирается Boolean-строка.
    static boolean
    parseBoolean(String str, boolean defaultValue)
    Разбирается Boolean-строка.
    static double
    parseDouble(String str, double defaultValue)
    Преобразует строку в число с плавающей точкой двойной точности, и, в случае ошибки, возвращает значение по умолчанию
    static <T extends Enum<T>>
    T
    parseEnum(Class<T> enumType, String name, T defaultValue)
     
    static float
    parseFloat(String str, float defaultValue)
    Преобразует строку в число с плавающей точкой, и, в случае ошибки, возвращает значение по умолчанию.
    static int
    Преобразует строку в целое число, и, в случае ошибки, возвращает 0.
    static int
    parseInt(String str, int defaultValue)
    Преобразует строку в целое число, и, в случае ошибки, возвращает значение по умолчанию.
    static Integer
    parseInteger(String str, Integer defaultValue)
    Преобразует строку в целое число Integer, в случае ошибки, возвращает значение по умолчанию.
    static long
    Преобразует строку в long число, и, в случае ошибки, возвращает 0.
    static long
    parseLong(String str, long defaultValue)
    Преобразует строку в long число, и, в случае ошибки, возвращает значение по умолчанию.
    static Period
    parsePeriod(String date1, String date2, Period defaultPeriod)
     
    static String
    randomAlphanumeric(int count)
    Возвращает псевдослучайную последовательность из алфавитно-цифровых символов
    static byte[]
    Возвращает массив байтов, полученных поблочным чтением входного потока.
    static void
    readFullBuffer(InputStream is, byte[] buffer)
     
    static void
    readFullBuffer(Reader reader, char[] buffer)
    Вычитываем полный буфер символов (может ведь по кускам приходить).
    static final byte[]
    removeZeroTail(byte[] data)
     
    static BigDecimal
    Округление децимала до второго знака после запятой.
    static byte[]
    stringToBytes(String s, String delimeter)
    Конвертирование HEX строки вида 0bcf224ba2 или 0BCF224BA2 или 0B-CF-22-4B-A2 в массив байт.
    static final List<String[]>
    Разбив строки пар с разделителями между парами = и разделителями пар , либо ; в список массивов из двух элементов.
    static final List<String[]>
    stringToPairs(String param, String pairsDelim, String pairDelim)
    Разбив строки пар в список массивов из двух элементов.
    static final Map<String,String>
    Разбивание строки пар с разделителями между парами = и разделителями пар , либо ; в Map, первые элементы пар становятся ключами, вторые - значениями.
    static String
    Меняет местами четные символы с соответствующими нечетными
    static final List<BigDecimal>
     
    static final int[]
    toIntArray(String valuesStr)
    Похожа на toList(String).
    static final List<Integer>
    toIntegerList(String valuesStr)
    Похожа на toList(String).
    static List<Integer>
    toIntegerList(org.json.JSONArray jsonArray)
     
    static final Set<Integer>
    toIntegerSet(String valuesStr)
    Преобразование строки, разделенной запятыми к набору Integer.
    static org.json.JSONArray
     
    static final List<String>
    toList(String valuesStr)
    Обратная к #toString(Collection) .
    static final List<String>
    toList(String valuesStr, String delim)
    Разбивает строку на список компоненов, разбитых по указанному разделителю.
    static final List<Long>
    toLongList(String valuesStr)
    static final Set<Long>
    toLongSet(String valuesStr)
     
    static final Set<String>
    toSet(String valuesStr)
    Разбивает строку на множество компонентов, разбитых по запятым.
    static final String
    toString(Iterable<?> valuesList)
    преобразует коллекцию строк в строку через запятую
    static final String
    toString(Iterable<?> valuesList, String delim)
    преобразует коллекцию строк в строку через значок
    static final String
    toString(Object[] valuesList, String delim)
    преобразует массив (строк) в строку через значок
    static final String
    toString(List<?> valuesList, int fromPos)
    Преобразует список строк в строку эти же строки через запятую, начиная с какой то позиции
    static final String
    toString(List<?> valuesList, String delim, int fromPos)
     
    static final String
    toString(Map<?,?> valuesMap, String delim)
     
    static String
    Переводит русский текст в транслит.
    static String
    unpackValues(long value, int base)
    Обратная паковке. 231 = 11100111 = "0-2,5-7" base - с какого числа начинать: час - с 0, минуты - с 0, остальное - с 1
    static final int
    unsignedByteToInt(byte value)
    Преобразование байта в целое без знака.
    static final long
    unsignedIntToLong(int value)
    Преобразование целого лонг без знака.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • HEX

      public static final char[] HEX
    • HEX_LOWERCASE

      public static final char[] HEX_LOWERCASE
    • KB

      public static final long KB
      See Also:
    • MB

      public static final long MB
      See Also:
    • GB

      public static final long GB
      See Also:
    • MINUTE

      public static final int MINUTE
      See Also:
    • HOUR

      public static final int HOUR
      See Also:
    • DAY

      public static final int DAY
      See Also:
    • patternComma

      public static final Pattern patternComma
    • patternSemicolon

      public static final Pattern patternSemicolon
    • patternColon

      public static final Pattern patternColon
    • PART

      public static String PART
    • GUID_PREFIX

      public static final String GUID_PREFIX
      See Also:
    • guidGenerator

      public static final AtomicLong guidGenerator
    • CODE_VERSION

      public static final String CODE_VERSION
      версия биллинга в этой ветке (определение через version info не всегда возможно, да и незачем здесь)
      See Also:
  • Constructor Details

    • Utils

      public Utils()
  • Method Details

    • isEmptyString

      public static final boolean isEmptyString(String value)
      Проверяет, является ли строка пустой или null
      Parameters:
      value - проверяемая строка
      Returns:
      true - если пустая или null
    • isBlankString

      public static final boolean isBlankString(String value)
      Проверяет, является ли строка пустой, состоящей из пробельных символов или null
      Parameters:
      value - проверяемая строка
      Returns:
      true - если пустая, состоит из пробельных символов или null
    • isZeroFilledArray

      public static final boolean isZeroFilledArray(byte[] val)
      Проверяет, заполнен ли байтовый массив целиком нулями.
      Parameters:
      val - проверяемый массив.
      Returns:
      true если весь массив заполнен нулями.
    • notEmptyString

      public static final boolean notEmptyString(String value)
      Проверяет, является ли строка не пустой и не null
      Parameters:
      value - проверяемая строка
      Returns:
      false - если пустая или null
    • notBlankString

      public static final boolean notBlankString(String value)
      Проверяет, является ли строка не пустой, не состоящей из пробельных символов и не null
      Parameters:
      value - проверяемая строка
      Returns:
      false - если пустая, состоит из пробельных символов или null
    • notEmptyCollection

      public static boolean notEmptyCollection(Collection collection)
      Проверяет переданную коллекцию на пустоту.
      Returns:
      - true - если коллекция не null и size > 0
    • isEmptyCollection

      public static boolean isEmptyCollection(Collection collection)
      Проверяет переданную коллекцию на пустоту или null
      Returns:
      true - если коллекция пустая или null
    • notEmptyArray

      public static boolean notEmptyArray(Object[] array)
      Проверяет переданный массив на пустоту
      Returns:
      true - если массив не null и длина > 0
    • maskNull

      public static final String maskNull(String value)
      Преобразует входную строку в пустую, если она null
      Parameters:
      value -
      Returns:
    • maskNull

      public static final <K> List<K> maskNull(List<K> value)
      Преобразует возвращает пустой список.
      Parameters:
      value -
      Returns:
    • maskNull

      public static final <K> Set<K> maskNull(Set<K> value)
    • maskNull

      public static final BigDecimal maskNull(BigDecimal value)
      Возвращает входное значение тогда и только тогда, когда оно не равно null, иначе возвращает BigDecimal.ZERO.
      Parameters:
      value -
      Returns:
    • maskNull

      public static final Long maskNull(Long value)
      Возвращает входное значение тогда и только тогда, когда оно не равно null, иначе возвращает 0L (закешированное).
      Parameters:
      value -
      Returns:
    • maskBlank

      public static final String maskBlank(String value, String defaultValue)
      Возвращает входную строку тогда и только тогда, когда она не является blank строкой (см. isBlankString(String)), иначе возвращает значение по умолчанию
      Parameters:
      value -
      defaultValue -
      Returns:
    • parseInt

      public static int parseInt(String str, int defaultValue)
      Преобразует строку в целое число, и, в случае ошибки, возвращает значение по умолчанию.
      Parameters:
      str - строка
      defaultValue - значение по умолчанию
      Returns:
    • parseInt

      public static int parseInt(String str)
      Преобразует строку в целое число, и, в случае ошибки, возвращает 0.
      Parameters:
      str - строка
      Returns:
    • parseInteger

      public static Integer parseInteger(String str, Integer defaultValue)
      Преобразует строку в целое число Integer, в случае ошибки, возвращает значение по умолчанию. Отличие от варианта с примитивами - немаскировка null итд.
      Parameters:
      str - строка
      defaultValue - значение по умолчанию
      Returns:
      See Also:
    • parseLong

      public static long parseLong(String str, long defaultValue)
      Преобразует строку в long число, и, в случае ошибки, возвращает значение по умолчанию.
      Parameters:
      str - строка
      defaultValue - значение по умолчанию
      Returns:
    • parseLong

      public static long parseLong(String str)
      Преобразует строку в long число, и, в случае ошибки, возвращает 0.
      Parameters:
      str - строка
      Returns:
    • parseFloat

      public static float parseFloat(String str, float defaultValue)
      Преобразует строку в число с плавающей точкой, и, в случае ошибки, возвращает значение по умолчанию.
      Parameters:
      str - строка
      defaultValue - значение по умолчанию
      Returns:
    • parseDouble

      public static double parseDouble(String str, double defaultValue)
      Преобразует строку в число с плавающей точкой двойной точности, и, в случае ошибки, возвращает значение по умолчанию
      Parameters:
      str - строка
      defaultValue - значение по умолчанию
      Returns:
    • parseBigDecimal

      public static BigDecimal parseBigDecimal(String str, BigDecimal defaultValue)
      Преобразует строку в BigDecimal, и, в случае ошибки, возвращает значение по умолчанию.
      Parameters:
      str - строка представляющая BigDecimal-значение.
      defaultValue - BigDecimal-значение по умолчанию.
      Returns:
      новый объект BigDecimal.
    • parseBigDecimalSumma

      public static BigDecimal parseBigDecimalSumma(String str)
      Преобразует строку в BigDecimal, в случае ошибки кидает NumberFormatException (как оригинальный BigDecimal). Отличие от parseBigDecimal и от оригинальных BigDecimal то что разбирает в качестве разделителя и точку и запятую (в случае попадения на вход числа где-то уже сформатированного в русской локали).
      Parameters:
      str - строка представляющая BigDecimal-значение.
      Returns:
      новый объект BigDecimal.
    • parseBoolean

      public static boolean parseBoolean(String str, boolean defaultValue)
      Разбирается Boolean-строка. Значения могут быть: 0/1, FALSE/TRUE, NO/YES, ON/OFF без учёта регистра. Приоритетное значение "истина", дефолтное "ложь" т.е. если истина распозналась то вернётся, иначе - ложь.
      Parameters:
      str - строка - представление Boolean.
      defaultValue - значение по умолчанию.
      Returns:
      если распозналась - возвращается соответствующий Boolean, иначе - значение по умолчанию.
    • parseBoolean

      public static boolean parseBoolean(String str)
      Разбирается Boolean-строка. Значения могут быть: 0/1, FALSE/TRUE, NO/YES, ON/OFF без учёта регистра.
      Parameters:
      str - строка - представление Boolean
      Returns:
      если распозналась - возвращается соответствующий Boolean, иначе - false
    • parsePeriod

      public static Period parsePeriod(String date1, String date2, Period defaultPeriod)
    • toList

      public static final List<String> toList(String valuesStr)
      Обратная к #toString(Collection) . Разбивает строку на список компоненов, разбитых по запятым.
      Parameters:
      valuesStr - исходная строка
      Returns:
      список взорванный по запятым. всегда не null.
    • toList

      public static final List<String> toList(String valuesStr, String delim)
      Разбивает строку на список компоненов, разбитых по указанному разделителю.
      Parameters:
      valuesStr - исходная строка
      delim - разделитель (regex как для String.split), аккуратнее с разделителями типа "." итд
      Returns:
      список взорванный по delim. всегда не null.
    • toIntegerList

      public static final List<Integer> toIntegerList(String valuesStr)
      Похожа на toList(String). Разбивает строку на список целочисленных компоненов, разбитых по запятым. Пробелы тримаются. Если между запятыми не числа, распарсятся в нули.
      Parameters:
      valuesStr - исходная строка
      Returns:
      список взорванный по запятым. всегда не null.
    • toBigDecimalList

      public static final List<BigDecimal> toBigDecimalList(String valuesStr)
    • toIntArray

      public static final int[] toIntArray(String valuesStr)
      Похожа на toList(String). Разбивает строку на список целочисленных компоненов, разбитых по запятым. Пробелы тримаются. Если между запятыми не числа, распарсятся в нули.
      Parameters:
      valuesStr - исходная строка
      Returns:
      int[] массив целых, всегда есть и не null, если входящая строка пустая, то будет пустым. Если между запятыми не числа, распарсится в нули.
      See Also:
    • toLongList

      public static final List<Long> toLongList(String valuesStr)
      Похожа на toList(String), toIntegerList(String). Разбивает строку на список Long компоненов, разбитых по запятым. Пробелы тримаются. Если между запятыми не числа, распарсятся в нули.
      Parameters:
      valuesStr - исходная строка
      Returns:
      список взорванный по запятым. всегда не null.
    • toSet

      public static final Set<String> toSet(String valuesStr)
      Разбивает строку на множество компонентов, разбитых по запятым.
      Parameters:
      valuesStr - исходная строка
      Returns:
      Set строка разбитая по запятым, всегда не null.
      See Also:
    • toIntegerSet

      public static final Set<Integer> toIntegerSet(String valuesStr)
      Преобразование строки, разделенной запятыми к набору Integer. Если между запятыми не числа, распарсятся в нули. Пробелы тримаются.
      Parameters:
      valuesStr - строка
      Returns:
      множество целых. всегда не null.
      See Also:
    • toLongSet

      public static final Set<Long> toLongSet(String valuesStr)
    • toString

      public static final String toString(Iterable<?> valuesList)
      преобразует коллекцию строк в строку через запятую
      Parameters:
      valuesList - коллекция-итерабл
      Returns:
      String
    • toString

      public static final String toString(Iterable<?> valuesList, String delim)
      преобразует коллекцию строк в строку через значок
      Parameters:
      valuesList - коллекция-итерабл
      Returns:
      String (если на входе null или пустой итерабл, то "")
    • toString

      public static final String toString(Object[] valuesList, String delim)
      преобразует массив (строк) в строку через значок
      Parameters:
      valuesList - массив объектов
      Returns:
      String
    • toString

      public static final String toString(Map<?,?> valuesMap, String delim)
    • toString

      public static final String toString(List<?> valuesList, int fromPos)
      Преобразует список строк в строку эти же строки через запятую, начиная с какой то позиции
      Parameters:
      valuesList - List
      Returns:
      String
    • toString

      public static final String toString(List<?> valuesList, String delim, int fromPos)
    • enumToMask

      public static final long enumToMask(String mask)
      Преобразует строку вида "1,2,3" в маску длинного целого.
      Parameters:
      mask - строка
      Returns:
      маска
    • maskToEnum

      public static String maskToEnum(long mask)
      Преобразование битовой маски в строку вида 1,2,3. Последний/левый (63-й) бит не обрабатывается и, соответственно, не выводится! Так что и 0xFFFFFFFFFFFFFFFFL и 0x7FFFFFFFFFFFFFFFL даёт "0,1,…,62". TODO используется в группах догогоров в основном, так что непонятно, разобраться бага или фича. если бага — исправить и удалить предупреждение. если фича, то какое-то неявное поведение, значит, удалить этот туду но оставить предупреждение.
      Parameters:
      mask - маска, длинное целое
      Returns:
      строка
    • formatCost

      public static String formatCost(float value)
      Форматирование числа с плавающей точкой до второго знака после запятой. Зачастую цена во float формате: 1) устраивает, 2) используется "по старинке", необходим постепенный переход.
    • formatCost

      public static String formatCost(BigDecimal value)
      Форматирование в строку цены в стандартном виде
      Parameters:
      value - значение в БигДецимал
      Returns:
      строка типа 123.45, либо null если на входе null
    • formatCost

      public static String formatCost(float value, int precission)
      Форматирование числа с плавающей точкой до второго знака после запятой. Зачастую цена во float формате: 1) устраивает, 2) используется "по старинке", необходим постепенный переход.
      Parameters:
      value - значение в БигДецимал
      precission - точность после запятой
    • formatCost

      public static String formatCost(BigDecimal value, int precission)
      Форматирование в строку цены в стандартном виде
      Parameters:
      value - значение в БигДецимал
      precission - точность после запятой
      Returns:
      строка типа 123.45, либо null если на входе null
    • formatCostByGrouping

      public static String formatCostByGrouping(BigDecimal value, int sizeGroup, int precission)
      Форматирование в строку цены с группированием.
      Напрамер если передана сумма = 349345543345, а размерность 3 то результатом будет 349 345 543 345, а для размерности 4 - 3493 4554 3360
      Parameters:
      value - - сумма
      sizeGroup - - размерность группы, если меньше 1, то будет принят равным 3.
      precission - - точность после запятой. Все что после запятой - не группируется
      Returns:
      - строка или null, если value = null
    • formatSessionCost

      public static String formatSessionCost(BigDecimal value)
      Форматирование в строку цены сессии
      Parameters:
      value - значение в БигДецимал
      Returns:
    • formatSessionCost

      public static String formatSessionCost(float value)
      Форматирование стоимости с плавающей точкой до пятого знака после запятой. Зачастую стоимость во float формате: 1) устраивает, 2) используется "по старинке", необходим постепенный переход.
    • memoryStatus

      public static final String memoryStatus()
      Возвращает строку с состоянием памяти приложения и количеством потоков.
      Returns:
    • memoryStatusShort

      public static final String memoryStatusShort()
      Инфа о памяти в виде сокращённого "use / total / max".
    • bytesToHexString

      public static String bytesToHexString(byte[] value)
      Преобразование массива байтов в строку вида "02AB03"
      Parameters:
      value -
      Returns:
    • hexStringToBytes

      public static byte[] hexStringToBytes(String value)
      Преобразование строки вида "02 AB 03" в массив байтов.
      Parameters:
      value - String
      Returns:
      byte[]
    • bytesToString

      public static String bytesToString(byte[] value)
      Обратная к функции hexStringToBytes(String), преобразование массива байт к строке вида "02 AB 03"
      Parameters:
      value - byte[]
      Returns:
      String
    • bytesToString

      public static String bytesToString(byte[] bytes, boolean upperCase, String delimeter)
      Преобразование массива байт в HEX строку с указанным разделителем
      Parameters:
      bytes - массив байт
      delimeter - разделитель, например, пробел или дефис
      upperCase - если true, то символы результата в верхнем регистре
      Returns:
    • stringToBytes

      public static byte[] stringToBytes(String s, String delimeter)
      Конвертирование HEX строки вида 0bcf224ba2 или 0BCF224BA2 или 0B-CF-22-4B-A2 в массив байт.
      Parameters:
      s - строка вида 0bcf224ba2 или 0BCF224BA2
      delimeter - - разделитель, если он нужен
      Returns:
    • byteBufferAsArray

      public static byte[] byteBufferAsArray(ByteBuffer data)
      Преобразование буфера байт к массиву байт.
      Parameters:
      data -
      Returns:
    • byteBufferAsArray

      public static byte[] byteBufferAsArray(ByteBuffer data, int length)
      Преобразование буфера байт к массиву байт.
      Parameters:
      data - буфер.
      length - длина данных.
      Returns:
    • getIdSet

      public static final Set<Integer> getIdSet(Collection<? extends Id> collection)
      Собирание списка id из списка объектов расширяющих Id.
      Parameters:
      collection -
      Returns:
    • getSystemVariables

      public static final String getSystemVariables()
    • getJavaProperties

      public static final String getJavaProperties()
    • newInstance

      public static <I> I newInstance(String name, Class<? extends I> clazz) throws ru.bitel.bgbilling.common.BGException
      Возвращает объект класса, заданного именем
      Parameters:
      name - имя класса
      clazz - класс, который расширяет класс name
      Returns:
      null - если нет такого класса
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getDigestBytes

      public static byte[] getDigestBytes(byte[] value, String algorithm)
    • getDigestBytes

      public static byte[] getDigestBytes(byte[] value)
      Возвращает байтовое представление MD5 хэша от входного массива байтов
      Parameters:
      value - входные данные
      Returns:
      массив байтов
    • getDigest

      public static String getDigest(String value, String encoding)
      Возвращает строковое представление MD5 хэша от входной строки. Обязательно указание кодировки, т.к. дайджест берётся только от байтовой последовательности, дайджест от строки неочевидное поведение имеет в общем случае.
      Parameters:
      value - входные данные.
      encoding - кодировка, в которой строка представлена (в ней берутся байты из неё).
      Returns:
      строка 16-ричное представление хеша.
    • getDigest

      public static String getDigest(String value, String encoding, String algorithm)
    • swapWords

      public static String swapWords(String str)
      Меняет местами четные символы с соответствующими нечетными
      Parameters:
      str - входная строка
      Returns:
    • pageCount

      public static final int pageCount(int count, int onPage)
      Расчёт количества страниц
      Parameters:
      count - количество элементов
      onPage - количество элементов на странице
      Returns:
    • pairToString

      public static final String pairToString(List<String[]> param)
      Склеивание пар строк в единую строку с заданным разделителем пар ',' и разделителем между элементами пары '='.
      Parameters:
      param - список с массивами строк из 2х элементов
      Returns:
    • pairHashToString

      public static final String pairHashToString(Map<String,String> param)
      Склеивание пар строк в единую строку с заданным разделителем пар ',' и разделителем между элементами пары '='.
      Parameters:
      param - мап с парами ключ-значение
      Returns:
    • pairToString

      public static final String pairToString(List<String[]> param, String pairsDelim, String pairDelim)
      Склеивание пар строк в единую строку с заданным разделителем пар и разделителем между элементами пары.
      Parameters:
      param - список строковых массивов из 2х элементов
      pairsDelim - разделитель пар
      pairDelim - разделитель пары
      Returns:
    • stringToPairs

      public static final List<String[]> stringToPairs(String param)
      Разбив строки пар с разделителями между парами = и разделителями пар , либо ; в список массивов из двух элементов.
      Parameters:
      param -
      Returns:
    • stringToPairsHash

      public static final Map<String,String> stringToPairsHash(String param)
      Разбивание строки пар с разделителями между парами = и разделителями пар , либо ; в Map, первые элементы пар становятся ключами, вторые - значениями.
      Parameters:
      param -
      Returns:
    • linesToPairsHash

      public static final Map<String,String> linesToPairsHash(String lines)
      Разбивание строк пар с разделителями между парами = и разделителями пар \n, в Map, первые элементы пар становятся ключами, вторые - значениями.
      Parameters:
      param -
      Returns:
    • listToMap

      public static final Map<String,String> listToMap(List<String[]> pairs)
    • stringToPairs

      public static final List<String[]> stringToPairs(String param, String pairsDelim, String pairDelim)
      Разбив строки пар в список массивов из двух элементов.
      Parameters:
      param - строка пар
      pairsDelim - разделитель между парами
      pairDelim - разделитель пары
      Returns:
    • readByBlock

      public static byte[] readByBlock(InputStream input) throws IOException
      Возвращает массив байтов, полученных поблочным чтением входного потока. Вычитывает весь InputStream, пока читается. В результате помещает всё в один массив byte[] ровно такой длины, сколько считалось.
      Parameters:
      input - входной поток
      Returns:
      byte[]
      Throws:
      IOException
    • flush

      public static boolean flush(InputStream inputStream, OutputStream outputStream) throws IOException
      Переброс блоками из входящего потока в исходящий. Ничего после чтения не закрывается. Ничего после записи не флушится. При ошибках выкидывает наружу. Работает синхронно. Для асинхронного связывания см. StreamConnector.
      Parameters:
      inputStream - входной стрим.
      outputStream - выходной стрим.
      Throws:
      IOException - при ошибках I/O.
    • readFullBuffer

      public static void readFullBuffer(Reader reader, char[] buffer) throws IOException
      Вычитываем полный буфер символов (может ведь по кускам приходить). Типа для подстраховки. Гарантированно заполняем весь буфер.
      Parameters:
      reader - ридер
      buffer - буфер нужной длины, который надо до конца заполнить
      Throws:
      IOException - при ошибке чтения или есть на буфер не хватило байт
    • readFullBuffer

      public static void readFullBuffer(InputStream is, byte[] buffer) throws IOException
      Throws:
      IOException
    • getMessage

      public static String getMessage(Document doc)
      Получение сообщения из ответа сервера. В общих утилсах, т.к. используется WiFi порталом.
      Parameters:
      doc -
      Returns:
    • multiLetter

      public static final String multiLetter(String letter, int count)
      Возвращает строку с продублированной определенное число раз входной строкой
      Parameters:
      letter - входная строка
      count - количество повторений
      Returns:
    • randomAlphanumeric

      public static String randomAlphanumeric(int count)
      Возвращает псевдослучайную последовательность из алфавитно-цифровых символов
      Parameters:
      count - длина последовательности
      Returns:
    • BuToI

      @Deprecated public static final int BuToI(byte value)
      Deprecated.
      Использовать unsignedByteToInt(byte)
      Parameters:
      value -
      Returns:
    • IuTol

      @Deprecated public static long IuTol(int value)
      Deprecated.
      Использовать unsignedIntToLong(int)
      Parameters:
      value -
      Returns:
    • IuToL

      @Deprecated public static final long IuToL(int value)
      Deprecated.
      Использовать unsignedIntToLong(int)
      Parameters:
      value -
      Returns:
    • unsignedByteToInt

      public static final int unsignedByteToInt(byte value)
      Преобразование байта в целое без знака.
      Parameters:
      value -
      Returns:
    • unsignedIntToLong

      public static final long unsignedIntToLong(int value)
      Преобразование целого лонг без знака.
      Parameters:
      value -
      Returns:
    • convertBytesToInt

      public static int convertBytesToInt(byte[] bytes)
      Возвращает десятичное число, полученное преобразованием шестнадцатеричного
      Parameters:
      bytes - массив байтов: шестнадцатеричное число
      Returns:
    • bytesToInt

      public static int bytesToInt(byte[] bytes)
      Возвращает int, полученный из массива длиной от 1 до 4 байт. При bytes==null или при bytes.length==0 вернет 0. При bytes.length>4 бросит IllegalArgumentException. Значения длиной 1-3 байта интерпретируются как UNSIGNED.
      Parameters:
      bytes -
      Returns:
    • bytesToInt

      public static int bytesToInt(byte[] bytes, int pos, int length)
      Возвращает int, полученный из массива длиной от 1 до 4 байт. При bytes==null или при bytes.length==0 вернет 0. При bytes.length>4 бросит IllegalArgumentException. Значения длиной 1-3 байта интерпретируются как UNSIGNED.
      Parameters:
      bytes -
      Returns:
    • bytesToLong

      public static long bytesToLong(byte[] bytes)
      Возвращает long, полученный из массива длиной от 1 до 8 байт. При bytes==null или при bytes.length==0 вернет 0. При bytes.length>8 бросит IllegalArgumentException. Значения длиной 1-7 байт интерпретируются как UNSIGNED.
      Parameters:
      bytes -
      Returns:
    • bytesToLong

      public static long bytesToLong(byte[] bytes, int pos, int length)
      Возвращает long, полученный из массива длиной от 1 до 8 байт. При bytes==null или при bytes.length==0 вернет 0. При bytes.length>8 бросит IllegalArgumentException. Значения длиной 1-7 байт интерпретируются как UNSIGNED.
      Parameters:
      bytes -
      Returns:
    • convertBytesToLong

      public static long convertBytesToLong(byte[] bytes)
      Возвращает десятичное число, полученное преобразованием шестнадцатеричного
      Parameters:
      bytes - массив байтов: шестнадцатеричное число
      Returns:
    • convertIntToBytes

      public static byte[] convertIntToBytes(int value)
      Возвращает шестнадцатеричное число (массив байтов), полученное преобразованием десятичного
      Parameters:
      value -
      Returns:
    • convertLongToBytes

      public static byte[] convertLongToBytes(long value)
      Возвращает шестнадцатеричное число (массив байтов), полученное преобразованием десятичного
      Parameters:
      value -
      Returns:
    • formatLong

      public static String formatLong(long value)
    • formatBigDecimal

      public static String formatBigDecimal(BigDecimal value, int scale)
      Форматирование децимала до указанного знака после запятой, маскируется NULL.
      Parameters:
      value -
      scale -
      Returns:
      See Also:
    • formatBigDecimalSumm

      public static String formatBigDecimalSumm(BigDecimal value)
      Форматирование децимала до второго знака после запятой, маскируется NULL.
      Parameters:
      value -
      Returns:
      See Also:
    • roundBigDecimalSumm

      public static BigDecimal roundBigDecimalSumm(BigDecimal value)
      Округление децимала до второго знака после запятой.
      Parameters:
      value -
      Returns:
    • checkMacAddres

      public static final boolean checkMacAddres(String value)
    • removeZeroTail

      public static final byte[] removeZeroTail(byte[] data)
    • booleanToStringInt

      public static final String booleanToStringInt(boolean value)
      Возвращает строковое представление boolean в виде числа
      Parameters:
      value -
      Returns:
      "1" - если value = true, "0" - если value = false
    • formatPhoneNumber

      public static String formatPhoneNumber(String value)
    • isArrayString

      public static boolean isArrayString(String string)
    • deleteAfterDog

      public static String deleteAfterDog(String value)
    • deleteBeforeSharp

      public static String deleteBeforeSharp(String value)
    • formatSessionTime

      public static String formatSessionTime(int value)
    • formatSessionTime2

      public static String formatSessionTime2(int value)
    • formatInteger

      public static String formatInteger(int value)
    • charsetConvert

      public static String charsetConvert(String value, String encoding)
      Конвертирует входную строку из кодировки ISO-8859-1 в указанную кодировку
      Parameters:
      value - входная строка
      encoding - кодировка
    • toTranslit

      public static String toTranslit(String text)
      Переводит русский текст в транслит. В результирующей строке каждая кириллическая буква будет заменена на соответствующую латинскую. Пиндоские символы останутся прежними.
      Parameters:
      text - исходный текст с русскими символами
      Returns:
      результат
    • getMD4Digest

      public static String getMD4Digest(String input, String charsetName) throws NoSuchAlgorithmException, UnsupportedEncodingException
      Делает md4-дайджест из строки (текстовый дайджест). "The quick brown fox jumps over the lazy dog" => "1bee69a46ba811185c194762abaeae90". Надобится для нужд всяких авторизаций. Используется, например, в вебмани в xml-интерфейсах.
      Parameters:
      input - входная строка
      charsetName - кодировка для взятия байтов из строки
      Returns:
      выходная строка
      Throws:
      NoSuchAlgorithmException - если какие-то проблемы с поддержкой алгоритма
      UnsupportedEncodingException - если какие-то проблемы с поддержкой указанной кодировки
    • newMD4

      public static MessageDigest newMD4() throws NoSuchAlgorithmException
      MD4 устарел и простым getInstance в JRE его нельзя получить, потому создан такой метод.
      Returns:
      Throws:
      NoSuchAlgorithmException
    • getMD4Digest

      public static byte[] getMD4Digest(byte[] input) throws NoSuchAlgorithmException
      Throws:
      NoSuchAlgorithmException
    • checkEmail

      public static boolean checkEmail(String email)
      Проверка email на валидность. Используется создание InternetAddress.
      Parameters:
      email - мыло
      Returns:
      true, если корректное
    • getListItemEnumFromId

      public static <E extends Enum<E> & ListItem> E getListItemEnumFromId(Class<E> enumm, int id, E def)
      Возвращение значения енума, наследующего ListItem по коду id. Используется в поиске по коду цифровому значения при использовании enum в качестве справочника перечислимых констант. Использование:
      CurrencyBank bank = getListItemEnumFromId( CurrencyBank.class, 1002 )
      Parameters:
      enumm - - класс enum-типа
      id - числовой id искомого enum-значения
      def - по умолчанию (если не нашлось ничего)
      Returns:
      енум-значение с id искомым или def если таковой не найден
    • getListItemEnumFromId

      public static <E extends Enum<E> & ListItem> E getListItemEnumFromId(Class<E> enumm, int id)
      Возвращение значения енума, наследующего ListItem по коду id. По умолчанию возвращает null.
      Returns:
      енум-значение с id искомым или null если таковой не найден.
      See Also:
    • unpackValues

      public static String unpackValues(long value, int base)
      Обратная паковке. 231 = 11100111 = "0-2,5-7" base - с какого числа начинать: час - с 0, минуты - с 0, остальное - с 1
      Parameters:
      value -
      base -
      Returns:
    • packValues

      public static long packValues(Collection<String> values, int base)
      Обратная распаковке. Преобразует последовательности чисел (возможно, через дефис) в битовую маску.
      Parameters:
      values - значения элементов вида 1,2,5-7,9-12 итд
      base - база, число, с которого начинается отсчёт. Типа с какого числа начинать: час - с 0, минуты - с 0, остальное - с 1.
      Returns:
      длинное целое - маска.
    • convert

      public static final Object convert(Object o, Class<?> clazz)
    • convert

      public static final Object convert(Number number, Class<?> clazz)
    • convert

      public static final Object convert(String text, Class<?> clazz)
    • checkPath

      public static String checkPath(String rawPath)
      Проверяет путь и заменяет прямые слэши на обратные. Добавляет слэш в конце, если он отсутствует.
      Parameters:
      rawPath - необработанный путь
      Returns:
      обработанный путь
    • escapeHTML

      public static String escapeHTML(String s)
    • checkJava

      public static void checkJava() throws ru.bitel.bgbilling.common.BGException
      Проверка java на корректную совместимость с нашим кодом. Проверяется версия спецификации, название реализации vm и было ли корректно обновлено всё, что касается часовых поясов. Для мягкого сообщения отловить экзепшен и вывести мессаж. А вообще по-хорошему запускать программу не нужно, если работа корректная невозможна, то работать вообще никак не нужно.
      Throws:
      ru.bitel.bgbilling.common.BGException - при несовместимости. В один экзепшен собираются все предупреждения через '\n'.
    • getOsJavaVersion

      public static String getOsJavaVersion(boolean full)
      Инфа о версии java/os в несколько строк через \n. Краткая или полная.
    • guid

      public static String guid()
      Генерирует уникальный идентификатор. Используется для генерации уникального id для контролов в web.
      Returns:
      строка.
    • parseEnum

      public static <T extends Enum<T>> T parseEnum(Class<T> enumType, String name, T defaultValue)
    • getDecimalFormatSumma

      public static DecimalFormat getDecimalFormatSumma()
    • checkCanReadFiles

      public static String checkCanReadFiles(File[] files)
      Проверка что все файлы указанные могут быть прочитаны. Если не так, то возвращает сообщение списка файлов.
    • getNamesFiles

      public static String getNamesFiles(File[] files)
      Список имени файлов в столбик с размерами (для сообщений, например)
    • maskEmail

      public static String maskEmail(String email)
      Маскирование адреса электронной почты, из адреса вида Name.Fio@domain.com возращает N**e.F*o@d****n.c*m
      Parameters:
      email -
      Returns:
    • maskPhoneNumber

      public static String maskPhoneNumber(String phone, int showDigitBegin, int showDigitEnd)
    • maskConfidential

      public static String maskConfidential(String msg2Mask)
      Маскировка всех символов для таких строк, как пароли, логины, ключи и т.д. Заменяются все символы на '*' с сохранением длины строки.
      Parameters:
      msg2Mask - строка с конфиденциальными данными, которые нужно замаскировать. Например, пароль, логин и т.д.
      Returns:
      строка вида '*****'. Длина строки совпадает с исходной строкой.
    • getIdList

      public static List<Integer> getIdList(Collection<? extends Id> items)
      Получаем список id у списка сущностей, которые наследуют Id.
      Parameters:
      items - список сущностей, отнаследованных от Id.
      Returns:
      список id сущностей.
    • htmlEncode

      public static String htmlEncode(String inValue, String ENCODING)
    • insertBOM

      public static final String insertBOM()
      Возвращает BOM, например для utf-8 (EF BB BF), для использования в xslt чтобы файлы csv имели в начале BOM и открывалис ахсцелем искаропки. Это не по стандарту и неправильно, но выхода нет больше. <xsl:value-of select="utils:insertBOM()"/> Вообще он вставляет BOM для любой кодировки в итоге, т.к. это просто спецсимвол, который при трансформации (или перекодировании) в нужной кодировке превратится в последовательность байт, которая уже является BOM-ом итоговым.
    • concat

      public static <V> List<V> concat(List<V> a, List<V> b)
      Соединяет два листа - создает новый, с содержимым указанных листов. Осуществляются проверки на null (обрабатывается как пустой лист).
      Parameters:
      a -
      b -
      Returns:
    • iterable

      public static <V> Iterable<V> iterable(Collection<V> a, Collection<V> b)
      Создает Iterable из двух Collection.
      Parameters:
      a -
      b -
      Returns:
    • getClassList

      public static List<Class<?>> getClassList(String packageName)
    • toIntegerList

      public static List<Integer> toIntegerList(org.json.JSONArray jsonArray)
    • toJsonArray

      public static org.json.JSONArray toJsonArray(List<Integer> ids)