Package ru.bgcrm.util

Class Utils

java.lang.Object
ru.bgcrm.util.Utils

public class Utils extends Object
  • Field Details

    • GSON

      public static final com.google.gson.Gson GSON
    • UUID_INSTANCE

      public static final String UUID_INSTANCE
    • UTF8

      public static final Charset UTF8
    • HEX

      public static final char[] HEX
    • HEX_LOWERCASE

      public static final char[] HEX_LOWERCASE
    • log

      public static final ru.bgcrm.logging.Logger log
    • STRING_ARRAY

      public static final String[] STRING_ARRAY
    • INTEGER_ARRAY

      public static final Integer[] INTEGER_ARRAY
  • Constructor Details

    • Utils

      public Utils()
  • Method Details

    • parseInt

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

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

      public static double parseDouble(String str)
      Преобразует строку в double, в случае ошибки возращает 0.
      Parameters:
      str - входная строка
      Returns:
      число преобразованное из строки или 0 в случае ошибки
    • parseDouble

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

      @Nullable public static @Nullable Integer parseInteger(@Nullable @Nullable String str, @Nullable @Nullable Integer defaultValue)
    • parseInteger

      @Nullable public static @Nullable Integer parseInteger(@Nullable @Nullable String str)
    • parseLong

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

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

      public static float parseFloat(String str)
    • parseFloat

      public static float parseFloat(String str, float defaultValue)
    • parseBigDecimal

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

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

      public static boolean parseBoolean(String str)
      Вызывает функию parseBoolean(String, Boolean) со вторым параметром false.
      Parameters:
      str -
      Returns:
    • isStringNumber

      public static boolean isStringNumber(String str)
      Определяет хранится ли в строке целое число.
      Parameters:
      str -
      Returns:
    • parseBoolean

      public static Boolean parseBoolean(String str, Boolean defaultValue)
      Преобразует строку в boolean.
      Parameters:
      str - строка.
      defaultValue - значение по-умолчанию.
      Returns:
      true - если str равно "1", "TRUE", "YES", "ON" без учёта регистра; false - если str равно "0", "FALSE", "NO" без учёта регистра; в ином случае - defaultValue.
    • booleanToStringInt

      public static String booleanToStringInt(boolean value)
      Преобразует boolean в строку "1" или "0".
      Parameters:
      value -
      Returns:
    • maskNull

      public static <T> T maskNull(T value, T defaultValue)
      Возвращает объект либо иное значение, если объект null.
      Parameters:
      value -
      Returns:
    • maskNull

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

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

      public static <T> Set<T> maskNullSet(Set<T> value)
      Возвращает пустой немодифируемый Set, если value == null либо value.
      Type Parameters:
      T -
      Parameters:
      value -
      Returns:
    • emptyToNull

      public static <T> Set<T> emptyToNull(Set<T> value)
      Возвращает null, если Set пустой либо null, иначе возвращает исходный Set.
      Parameters:
      value -
      Returns:
    • emptyToNull

      public static <T> List<T> emptyToNull(List<T> value)
      Возвращает null, если List пустой либо null, иначе возвращает исходный List.
      Parameters:
      value -
      Returns:
    • maskEmpty

      public static String maskEmpty(String value, String defaultValue)
      Преобразует входную строку в значение по-умолчанию, если она null или пустая.
      Parameters:
      value -
      Returns:
    • isEmptyString

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

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

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

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

      public static String toString(Collection<?> valuesList)
      Вызывается toString(Collection, String, String) с параметром emptyValue="", delim=DEFAULT_DELIM.
      Parameters:
      valuesList -
      Returns:
    • toString

      public static String toString(Collection<?> valuesList, String emptyValue, String delim)
      Преобразовывает коллекцию в строку, разделенную значениями delim.
      Parameters:
      valuesList - коллектиция
      emptyValue - значение при пустом списке
      delim - разделитель
      Returns:
    • toIntegerList

      public static List<Integer> toIntegerList(String valuesStr)
      Преобразует строку с разделителями - запятыми или точками с запятой к списку Integer.
      Parameters:
      valuesStr -
      Returns:
    • toIntegerList

      public static List<Integer> toIntegerList(String valuesStr, String delims)
      Преобразует строку с произвольными разделителями - символами в delims в список Integer.
      Parameters:
      valuesStr -
      delims -
      Returns:
    • toIntegerSet

      public static Set<Integer> toIntegerSet(String valuesStr)
      Преобразование строки, разделенной запятыми к набору Integer.
      Parameters:
      valuesStr -
      Returns:
    • toSet

      public static Set<String> toSet(String valuesStr, String delims)
      Преобразует строку разделённую произвольными разделителями - симвоолами в delims в набор строк.
      Parameters:
      valuesStr -
      delims -
      Returns:
    • toSet

      public static Set<String> toSet(String valuesStr)
      Преобразует строку разделённую , либо ; в набор строк.
      Parameters:
      valuesStr -
      Returns:
    • toList

      public static List<String> toList(String valuesStr)
      Преобразует строку разделённую , либо ; в список строк.
      Parameters:
      valuesStr -
      Returns:
    • toList

      public static List<String> toList(String valuesStr, String delims)
      Преобразует строку с произвольными разделителями - симвоолами в delims в список строк.
      Parameters:
      valuesStr -
      delims -
      Returns:
    • toText

      public static String toText(List<String> config, String separator)
      Преобразует лист строк в planeText с произвольным разделителем
      Parameters:
      config -
      separator -
      Returns:
    • toSet

      @SafeVarargs public static <T> Set<T> toSet(T... values)
      Преобразует несколько элементов в набор.
    • asSet

      @SafeVarargs public static <T> Set<T> asSet(T... values)
    • toList

      public static <T> List<T> toList(T... value)
      Преобразует несколько элементов в список.
    • toMutableList

      public static <T> List<T> toMutableList(T... value)
    • toSet

      public static <T> Set<T> toSet(List<T> list)
    • getObjectIdsList

      public static <T extends IdTitle> List<Integer> getObjectIdsList(Collection<T> list)
      Возвращает список кодов объектов.
      Parameters:
      list -
      Returns:
    • getObjectIdsSet

      public static <T extends IdTitle> Set<Integer> getObjectIdsSet(Collection<T> list)
      Возаращает набор кодов объектов.
      Parameters:
      list -
      Returns:
    • getObjectIds

      public static <T extends Id> String getObjectIds(Collection<T> list)
      Возвращает коды объектов из коллекции через запятую.
      Parameters:
      list -
      Returns:
    • getObjectIds

      public static <T extends Id> String getObjectIds(Collection<T> list, String startValues)
      Возвращает коды объектов из коллекции через запятую с указанным началом строки.
      Parameters:
      list -
      startValues - начало строки.
      Returns:
    • getObjectIds

      public static <T extends Id> String getObjectIds(Collection<T> list, String startValues, String delim)
      Возвращает коды объектов из коллекции с указанием разделителя и начала строки.
      Parameters:
      list -
      startValues - начало строки.
      delim - разделитель кодов.
      Returns:
    • getObjectTitles

      public static <T extends IdTitle> String getObjectTitles(Collection<T> list)
      Возвращает наименования объектов через запятую.
      Parameters:
      list -
      Returns:
    • getObjectTitles

      public static <T extends IdTitle> String getObjectTitles(Collection<T> list, String startValues)
      Возвращает наименования объектов с указанным началом строки.
      Parameters:
      list -
      startValues - начало строки.
      Returns:
    • getObjectTitles

      public static <T extends IdTitle> String getObjectTitles(Collection<T> list, String startValues, String delim)
      Возвращает наименования объектов с указанием начала строки и разделителя.
      Parameters:
      list -
      startValues - начало строки.
      delim - разделитель наименований объектов.
      Returns:
    • getObjectList

      public static <T extends IdTitle> List<T> getObjectList(List<T> fullList, Set<Integer> selectedIds)
      Возвращает объекты из полного списка с указанными кодами.
      Parameters:
      fullList - полный список объектов.
      selectedIds - коды.
      Returns:
    • getObjectList

      public static <T extends IdTitle> List<T> getObjectList(Map<Integer,T> fullMap, List<Integer> selectedIds)
      Возвращает объекты из полного мапа с указанным порядком кодов.
      Parameters:
      fullMap - полный мап объектов.
      selectedIds - требуемый порядок кодов.
      Returns:
    • parseIdTitleList

      public static List<IdTitle> parseIdTitleList(String value)
      Возвращает список объектов из строки вида код:наименование; код:наименование.
      Parameters:
      value -
      Returns:
    • parseKeyValue

      public static Map<String,String> parseKeyValue(@NotNull @NotNull String text, @NotNull @NotNull String entryDelimiter, @NotNull @NotNull String keyValueDelimiter)
      Получаем мапу из строки со списком параметров вида key-value
      Parameters:
      text - исходный текст
      entryDelimiter - разделитель пар key-value
      keyValueDelimiter - разделитель (символ присваивания) между ключем и значением
      Returns:
    • parseIntegerKeyValue

      public static Map<Integer,String> parseIntegerKeyValue(@NotNull @NotNull String text, @NotNull @NotNull String entryDelimiter, @NotNull @NotNull String keyValueDelimiter)
    • parseIdTitleList

      public static List<IdTitle> parseIdTitleList(String value, String noPairValue)
      Возвращает список объектов из строки вида код:наименование; код:наименование. Если значение для второго элемента пары не указано, будет использовано переданное в параметре noPairValue
      Parameters:
      value -
      noPairValue -
      Returns:
    • addSetupPair

      public static void addSetupPair(StringBuilder data, String prefix, String param, String value)
    • addCommaSeparated

      public static void addCommaSeparated(StringBuilder result, String value)
      Добавляет в конец строки новое значение, отделяя запятой с пробелом, если он не первый.
      Parameters:
      result -
      value -
    • addSeparated

      public static void addSeparated(StringBuilder result, String separator, String value)
    • formatPatternString

      public static String formatPatternString(String object, int objectId, ParamValueDAO paramValueDAO, String pattern) throws BGException
      Генерирует строку из шаблона с подстановкой макросов вида ${param_<код параметра>}.
      Parameters:
      object -
      objectId -
      paramValueDAO -
      pattern -
      Returns:
      Throws:
      BGException
    • parseList

      public static List<ListItem> parseList(Element listElement)
    • getDigest

      public static String getDigest(String value)
      Вызывает getDigest(String, String) с кодировкой UTF-8.
      Parameters:
      value -
      Returns:
    • getDigest

      public static String getDigest(String value, String charset)
      Возвращает строковое представление MD5 хэша от входной строки.
      Parameters:
      value - входные данные
      charset - кодировка
      Returns:
      строка
    • getTmpDir

      public static String getTmpDir()
    • validateEmail

      public static boolean validateEmail(String email)
    • getEmailPattern

      public static Pattern getEmailPattern()
    • validateIPv4

      public static boolean validateIPv4(String ip)
    • createDirectoryIfNoExistInWorkDir

      public static File createDirectoryIfNoExistInWorkDir(String dirName)
    • substringAfter

      public static String substringAfter(String value, String token, int num)
      Возвращает остаток строки после num вхождения token в строку value.
      Parameters:
      value -
      token -
      num -
      Returns:
    • getDateFromMinutes

      public static Date getDateFromMinutes(int minutes)
    • bytesToString

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

      public static byte[] stringToBytes(String s)
      Конвертирование HEX строки вида 0bcf224ba2 или 0BCF224BA2 в массив байт.
      Parameters:
      s - строка вида 0bcf224ba2 или 0BCF224BA2
      Returns:
    • getFirst

      @Nullable public static <T> T getFirst(Collection<T> collection)
      Возвращает первый элемент коллекции либо null если коллекция пуста.
    • getLastElement

      @Nullable public static <T> T getLastElement(Iterable<T> elements)
    • getNullableFirst

      @NotNull public static <T> @NotNull Optional<T> getNullableFirst(Collection<T> collection)
    • nullOrEmpty

      public static boolean nullOrEmpty(Collection<?> collection)
    • notNullOrEmpty

      public static boolean notNullOrEmpty(Collection<?> collection)
    • nullOrEmpty

      public static boolean nullOrEmpty(Map<?,?> map)
    • notNullOrEmpty

      public static boolean notNullOrEmpty(Map<?,?> map)
    • hasOneItem

      public static boolean hasOneItem(Collection<?> collection)
    • concat

      public static <T> List<T> concat(List<T> first, List<T> second)
      Конкатенация двух списков
    • stringToMap

      @NotNull public static @NotNull Map<String,String> stringToMap(String rawContent, String itemSplitter)
      Преобразование результата строки полученной через Map.toString обратно в Map
      Parameters:
      rawContent - - строка мапы
      Returns:
      - отображение полученной строки как Mapinvalid input: '<'String, String>
    • splitToPair

      public static kotlin.Pair<String,String> splitToPair(String value)
    • splitToPair

      public static kotlin.Pair<String,String> splitToPair(String value, String splitter)
    • escapeXml

      public static String escapeXml(String value)
      Кодирует символы XML форматирования (кавычки, теги) для нормального их отображения в HTML тексте.
      Parameters:
      value -
      Returns:
    • nullableEscapeXml

      @Nullable public static @Nullable String nullableEscapeXml(@Nullable @Nullable String value)
    • swapWords

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

      public static void setFileNameHeades(javax.servlet.http.HttpServletResponse response, String fileName)
      Устанавливает заголовки HTTP запроса при выгрузке файла.
      Parameters:
      response -
      fileName -
    • unsignedByteToInt

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

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

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

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

      public static String toSQLString(Collection<?> valuesList)
    • getStringFromInputStream

      public static String getStringFromInputStream(InputStream inputStream, Charset charset) throws BGException
      Throws:
      BGException
    • getSubstringBetweenIfContains

      @Nullable public static @Nullable String getSubstringBetweenIfContains(@Nullable @Nullable String original, @NotNull @NotNull String tag)
    • tryGetFromSplit

      @Nullable public static @Nullable String tryGetFromSplit(String text, String separator, int index)
      Взять элемент под индексом N из массива, полученного при расщеплении строки
      Parameters:
      text - оригинальная строка
      separator - разделитель (regexp)
      index - индекс необходимого элемента
      Returns:
      полученную подстроку или null если индекс превышает длину массива
    • getActive

      public static <T extends PeriodSupport> List<T> getActive(Collection<T> collection)
      Список объектов, период которых активен на текущую дату
      Parameters:
      collection -
      Returns:
    • getActiveOnDate

      public static <T extends PeriodSupport> List<T> getActiveOnDate(Collection<T> collection, Date date)
      Список объектов, период которых активен на указанную дату
      Parameters:
      collection -
      date -
      Returns:
    • toJson

      public static String toJson(Object object)
    • fromJson

      public static <T> T fromJson(String json, Class<T> type)
    • fromJson

      public static <T> T fromJson(String json, com.google.gson.reflect.TypeToken<T> typeToken)
    • fromJson

      public static <T> T fromJson(String json, Type type)
    • requireNonNull

      @NotNull public static <T> T requireNonNull(@Nullable T value, String message) throws BGException
      Throws:
      BGException
    • requireNonNull

      @NotNull public static <T> T requireNonNull(@Nullable T value, Supplier<String> messageSupplier) throws BGException
      Throws:
      BGException
    • isNotBlank

      public static boolean isNotBlank(String... values)
    • requirePositive

      public static <T extends Number> T requirePositive(T value, String message)
    • getConnection

      public static Connection getConnection()
    • contains

      public static boolean contains(int expected, int[] array)
    • measure

      public static <T extends Exception> void measure(String title, ThrowableRunnable<T> runnable) throws T
      Throws:
      T
    • parsePairedInt

      @Nullable @Contract("null, _ -> null") public static @Nullable kotlin.Pair<Integer,Integer> parsePairedInt(@Nullable @Nullable String value, @NotNull @NotNull String delimiter)
    • appendln

      public static StringBuilder appendln(String text, StringBuilder builder)
    • isCustomerLinked

      public static boolean isCustomerLinked(CommonObjectLink link)
    • isContractLinked

      public static boolean isContractLinked(CommonObjectLink link)
    • isCommonContractLinked

      public static boolean isCommonContractLinked(CommonObjectLink link)
    • getWordByIndex

      public static String getWordByIndex(String fio, int index, String delimiter)
    • isOneOf

      public static <T> boolean isOneOf(T actualValue, T... expectedValues)
    • extractDigits

      public static Integer extractDigits(String value)
    • extractLetters

      public static String extractLetters(String value)
    • getLetterForNumber

      public static String getLetterForNumber(int i)
    • getServerInstanceId

      public static String getServerInstanceId(String defaultValue)
    • getServerInstanceId

      public static String getServerInstanceId()
    • toBigDecimalList

      @NotNull public static @NotNull List<BigDecimal> toBigDecimalList(@NotNull @NotNull String valuesStr)
    • toBigDecimalList

      @NotNull public static @NotNull List<BigDecimal> toBigDecimalList(String valuesStr, String delims)
    • toBigDecimalSet

      @NotNull public static @NotNull Set<BigDecimal> toBigDecimalSet(@NotNull @NotNull String valuesStr)
    • toBigDecimalSet

      @NotNull public static @NotNull Set<BigDecimal> toBigDecimalSet(String valuesStr, String delims)
    • distinctByKey

      public static <T> Predicate<T> distinctByKey(Function<? super T,?> keyGetter)
    • distinctByKeys

      @SafeVarargs public static <T> Predicate<T> distinctByKeys(Function<? super T,?>... keyGetters)
    • matchAllString

      public static boolean matchAllString(Collection<String> collection, String regExp)
    • matchAnyString

      public static boolean matchAnyString(Collection<String> collection, String regExp)
    • matchString

      public static boolean matchString(String str, String regExp)
    • requireNonEmpty

      public static String requireNonEmpty(String value, String message) throws BGException
      Throws:
      BGException
    • allIsNull

      public static boolean allIsNull(Object... objects)