1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
public class BootConverters {
private static final boolean JAVA_8_IS_PRESENT = ClassUtils.isPresent("java.time.LocalDateTime", Jsr310Converters.class.getClassLoader());
public static Collection<Converter<?, ?>> getConverterToRegister() { if (!JAVA_8_IS_PRESENT) { return Collections.emptySet(); } List<Converter<?, ?>> converters = new ArrayList<>(); converters.add(LocalDateConverter.INSTANCE); converters.add(LocalDateTimeConverter.INSTANCE); converters.add(StringConverter.INSTANCE); return converters; }
enum LocalDateConverter implements Converter<String, LocalDate> { INSTANCE;
@Override public LocalDate convert(String oldValue) { if (oldValue.isEmpty()) { return null; } else if (Pattern.matches(DateBootUtil.DEFAULT_DATE_REGEX, oldValue)) { return LocalDate.parse(oldValue, DateTimeFormatter.ofPattern(DateBootUtil.DEFAULT_DATE_FORMAT)); } else if (Pattern.matches(DateBootUtil.DEFAULT_DATETIME_FORMAT, oldValue)) { return LocalDateTime.parse(oldValue, DateTimeFormatter.ofPattern(DateBootUtil.DEFAULT_DATETIME_FORMAT)) .toLocalDate(); } else { return null; } } }
enum LocalDateTimeConverter implements Converter<String, LocalDateTime> { INSTANCE;
@Override public LocalDateTime convert(String oldValue) { if (oldValue.isEmpty()) { return null; } else if (Pattern.matches(DateBootUtil.DEFAULT_DATETIME_REGEX, oldValue)) { return LocalDateTime.parse(oldValue, DateTimeFormatter.ofPattern(DateBootUtil.DEFAULT_DATETIME_FORMAT)); } else if (Pattern.matches(DateBootUtil.DEFAULT_DATE_REGEX, oldValue)) { return LocalDate.parse(oldValue, DateTimeFormatter.ofPattern(DateBootUtil.DEFAULT_DATE_FORMAT)).atStartOfDay(); } else { return null; } } }
enum StringConverter implements Converter<String, String> { INSTANCE;
@Override public String convert(String oldValue) { if (oldValue.isEmpty()) { return null; } else if ("undefined".equals(oldValue)) { return null; } else { return oldValue; } } } }
|