StringUtils.java

  1. package no.nav.data.common.utils;

  2. import org.apache.logging.log4j.util.Strings;
  3. import org.springframework.util.Assert;

  4. import java.util.Comparator;
  5. import java.util.List;
  6. import java.util.Objects;
  7. import java.util.UUID;
  8. import java.util.function.Function;
  9. import java.util.stream.Collectors;

  10. import static no.nav.data.common.utils.StreamUtils.safeStream;
  11. import static org.apache.commons.lang3.StringUtils.isBlank;
  12. import static org.apache.commons.lang3.StringUtils.isNotBlank;

  13. public final class StringUtils {

  14.     private StringUtils() {
  15.     }

  16.     public static String toUpperCaseAndTrim(String field) {
  17.         return field == null ? null : field.toUpperCase().trim();
  18.     }

  19.     public static List<String> formatList(List<String> strings) {
  20.         return safeStream(strings).map(Strings::trimToNull).filter(Objects::nonNull).collect(Collectors.toList());
  21.     }

  22.     public static List<String> formatListToUppercase(List<String> strings) {
  23.         return safeStream(strings).map(Strings::trimToNull).filter(Objects::nonNull).map(String::toUpperCase).collect(Collectors.toList());
  24.     }

  25.     public static List<String> formatListToUppercase(List<String> strings, boolean sort) {
  26.         var formatted = formatListToUppercase(strings);
  27.         if (sort) {
  28.             formatted.sort(Comparator.comparing(Function.identity()));
  29.         }
  30.         return formatted;
  31.     }

  32.     public static boolean isUUID(String uuid) {
  33.         if (isBlank(uuid)) {
  34.             return false;
  35.         }
  36.         try {
  37.             //noinspection ResultOfMethodCallIgnored
  38.             UUID.fromString(uuid);
  39.             return true;
  40.         } catch (IllegalArgumentException e) {
  41.             return false;
  42.         }
  43.     }

  44.     public static String insertUuidDashes(String uuid) {
  45.         return uuid.replaceFirst(
  46.                 "(\\p{XDigit}{8})(\\p{XDigit}{4})(\\p{XDigit}{4})(\\p{XDigit}{4})(\\p{XDigit}+)",
  47.                 "$1-$2-$3-$4-$5"
  48.         );
  49.     }

  50.     public static UUID toUUID(String id) {
  51.         Assert.isTrue(isNotBlank(id) && id.length() >= 32, "invalid id");
  52.         if (!id.contains("-")) {
  53.             id = insertUuidDashes(id);
  54.         }
  55.         Assert.isTrue(StringUtils.isUUID(id), "invalid id");
  56.         return UUID.fromString(id);
  57.     }
  58. }