Polishing.
Replace qualified class name access of inner classes with simple names and imports. Remove Java 8 guards. Extend supported temporal types in Jsr310Converters. Remove superfluous converter annotations. Simplify tests. See #2677 Original pull request: #2681
This commit is contained in:
@@ -19,10 +19,11 @@ import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.text.DateFormat;
|
||||
import java.text.ParseException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.Set;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.springframework.core.convert.converter.Converter;
|
||||
@@ -50,20 +51,22 @@ final class BinaryConverters {
|
||||
|
||||
static Collection<?> getConvertersToRegister() {
|
||||
|
||||
return Set.of(
|
||||
new BinaryConverters.StringToBytesConverter(),
|
||||
new BinaryConverters.BytesToStringConverter(),
|
||||
new BinaryConverters.NumberToBytesConverter(),
|
||||
new BinaryConverters.BytesToNumberConverterFactory(),
|
||||
new BinaryConverters.EnumToBytesConverter(),
|
||||
new BinaryConverters.BytesToEnumConverterFactory(),
|
||||
new BinaryConverters.BooleanToBytesConverter(),
|
||||
new BinaryConverters.BytesToBooleanConverter(),
|
||||
new BinaryConverters.DateToBytesConverter(),
|
||||
new BinaryConverters.BytesToDateConverter(),
|
||||
new BinaryConverters.UuidToBytesConverter(),
|
||||
new BinaryConverters.BytesToUuidConverter()
|
||||
);
|
||||
List<Object> converters = new ArrayList<>(12);
|
||||
|
||||
converters.add(new StringToBytesConverter());
|
||||
converters.add(new BytesToStringConverter());
|
||||
converters.add(new NumberToBytesConverter());
|
||||
converters.add(new BytesToNumberConverterFactory());
|
||||
converters.add(new EnumToBytesConverter());
|
||||
converters.add(new BytesToEnumConverterFactory());
|
||||
converters.add(new BooleanToBytesConverter());
|
||||
converters.add(new BytesToBooleanConverter());
|
||||
converters.add(new DateToBytesConverter());
|
||||
converters.add(new BytesToDateConverter());
|
||||
converters.add(new UuidToBytesConverter());
|
||||
converters.add(new BytesToUuidConverter());
|
||||
|
||||
return converters;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -28,39 +28,27 @@ import java.time.ZonedDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.core.convert.converter.Converter;
|
||||
import org.springframework.data.convert.ReadingConverter;
|
||||
import org.springframework.data.convert.WritingConverter;
|
||||
import org.springframework.data.redis.core.convert.BinaryConverters.StringBasedConverter;
|
||||
import org.springframework.util.ClassUtils;
|
||||
|
||||
/**
|
||||
* Helper class to register JSR-310 specific {@link Converter} implementations in case the we're running on Java 8.
|
||||
* Helper class to register JSR-310 specific {@link Converter} implementations.
|
||||
*
|
||||
* @author Mark Paluch
|
||||
* @author John Blum
|
||||
*/
|
||||
public abstract class Jsr310Converters {
|
||||
|
||||
private static final boolean JAVA_8_IS_PRESENT = ClassUtils.isPresent("java.time.LocalDateTime",
|
||||
Jsr310Converters.class.getClassLoader());
|
||||
|
||||
/**
|
||||
* Returns the {@link Converter Converters} to be registered.
|
||||
* <p>
|
||||
* Will only return {@link Converter Converters} in case we're running on Java 8.
|
||||
*
|
||||
* @return the {@link Converter Converters} to be registered.
|
||||
*/
|
||||
public static Collection<Converter<?, ?>> getConvertersToRegister() {
|
||||
|
||||
if (!JAVA_8_IS_PRESENT) {
|
||||
return Collections.emptySet();
|
||||
}
|
||||
|
||||
List<Converter<?, ?>> converters = new ArrayList<>();
|
||||
List<Converter<?, ?>> converters = new ArrayList<>(20);
|
||||
|
||||
converters.add(new LocalDateTimeToBytesConverter());
|
||||
converters.add(new BytesToLocalDateTimeConverter());
|
||||
@@ -88,19 +76,15 @@ public abstract class Jsr310Converters {
|
||||
|
||||
public static boolean supports(Class<?> type) {
|
||||
|
||||
if (!JAVA_8_IS_PRESENT) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return Arrays.<Class<?>> asList(LocalDateTime.class, LocalDate.class, LocalTime.class, Instant.class,
|
||||
ZonedDateTime.class, ZoneId.class, Period.class, Duration.class).contains(type);
|
||||
ZonedDateTime.class, ZoneId.class, Period.class, Duration.class, OffsetDateTime.class, OffsetTime.class)
|
||||
.contains(type);
|
||||
}
|
||||
|
||||
/**
|
||||
* @author Mark Paluch
|
||||
* @since 1.7
|
||||
*/
|
||||
@WritingConverter
|
||||
static class LocalDateTimeToBytesConverter extends StringBasedConverter implements Converter<LocalDateTime, byte[]> {
|
||||
|
||||
@Override
|
||||
@@ -113,7 +97,6 @@ public abstract class Jsr310Converters {
|
||||
* @author Mark Paluch
|
||||
* @since 1.7
|
||||
*/
|
||||
@ReadingConverter
|
||||
static class BytesToLocalDateTimeConverter extends StringBasedConverter implements Converter<byte[], LocalDateTime> {
|
||||
|
||||
@Override
|
||||
@@ -126,7 +109,6 @@ public abstract class Jsr310Converters {
|
||||
* @author Mark Paluch
|
||||
* @since 1.7
|
||||
*/
|
||||
@WritingConverter
|
||||
static class LocalDateToBytesConverter extends StringBasedConverter implements Converter<LocalDate, byte[]> {
|
||||
|
||||
@Override
|
||||
@@ -139,7 +121,6 @@ public abstract class Jsr310Converters {
|
||||
* @author Mark Paluch
|
||||
* @since 1.7
|
||||
*/
|
||||
@ReadingConverter
|
||||
static class BytesToLocalDateConverter extends StringBasedConverter implements Converter<byte[], LocalDate> {
|
||||
|
||||
@Override
|
||||
@@ -152,7 +133,6 @@ public abstract class Jsr310Converters {
|
||||
* @author Mark Paluch
|
||||
* @since 1.7
|
||||
*/
|
||||
@WritingConverter
|
||||
static class LocalTimeToBytesConverter extends StringBasedConverter implements Converter<LocalTime, byte[]> {
|
||||
|
||||
@Override
|
||||
@@ -165,7 +145,6 @@ public abstract class Jsr310Converters {
|
||||
* @author Mark Paluch
|
||||
* @since 1.7
|
||||
*/
|
||||
@ReadingConverter
|
||||
static class BytesToLocalTimeConverter extends StringBasedConverter implements Converter<byte[], LocalTime> {
|
||||
|
||||
@Override
|
||||
@@ -178,7 +157,6 @@ public abstract class Jsr310Converters {
|
||||
* @author Mark Paluch
|
||||
* @since 1.7
|
||||
*/
|
||||
@WritingConverter
|
||||
static class ZonedDateTimeToBytesConverter extends StringBasedConverter implements Converter<ZonedDateTime, byte[]> {
|
||||
|
||||
@Override
|
||||
@@ -191,7 +169,6 @@ public abstract class Jsr310Converters {
|
||||
* @author Mark Paluch
|
||||
* @since 1.7
|
||||
*/
|
||||
@ReadingConverter
|
||||
static class BytesToZonedDateTimeConverter extends StringBasedConverter implements Converter<byte[], ZonedDateTime> {
|
||||
|
||||
@Override
|
||||
@@ -204,7 +181,6 @@ public abstract class Jsr310Converters {
|
||||
* @author Mark Paluch
|
||||
* @since 1.7
|
||||
*/
|
||||
@WritingConverter
|
||||
static class InstantToBytesConverter extends StringBasedConverter implements Converter<Instant, byte[]> {
|
||||
|
||||
@Override
|
||||
@@ -217,7 +193,6 @@ public abstract class Jsr310Converters {
|
||||
* @author Mark Paluch
|
||||
* @since 1.7
|
||||
*/
|
||||
@ReadingConverter
|
||||
static class BytesToInstantConverter extends StringBasedConverter implements Converter<byte[], Instant> {
|
||||
|
||||
@Override
|
||||
@@ -230,7 +205,6 @@ public abstract class Jsr310Converters {
|
||||
* @author Mark Paluch
|
||||
* @since 1.7
|
||||
*/
|
||||
@WritingConverter
|
||||
static class ZoneIdToBytesConverter extends StringBasedConverter implements Converter<ZoneId, byte[]> {
|
||||
|
||||
@Override
|
||||
@@ -243,7 +217,6 @@ public abstract class Jsr310Converters {
|
||||
* @author Mark Paluch
|
||||
* @since 1.7
|
||||
*/
|
||||
@ReadingConverter
|
||||
static class BytesToZoneIdConverter extends StringBasedConverter implements Converter<byte[], ZoneId> {
|
||||
|
||||
@Override
|
||||
@@ -256,7 +229,6 @@ public abstract class Jsr310Converters {
|
||||
* @author Mark Paluch
|
||||
* @since 1.7
|
||||
*/
|
||||
@WritingConverter
|
||||
static class PeriodToBytesConverter extends StringBasedConverter implements Converter<Period, byte[]> {
|
||||
|
||||
@Override
|
||||
@@ -269,7 +241,6 @@ public abstract class Jsr310Converters {
|
||||
* @author Mark Paluch
|
||||
* @since 1.7
|
||||
*/
|
||||
@ReadingConverter
|
||||
static class BytesToPeriodConverter extends StringBasedConverter implements Converter<byte[], Period> {
|
||||
|
||||
@Override
|
||||
@@ -282,7 +253,6 @@ public abstract class Jsr310Converters {
|
||||
* @author Mark Paluch
|
||||
* @since 1.7
|
||||
*/
|
||||
@WritingConverter
|
||||
static class DurationToBytesConverter extends StringBasedConverter implements Converter<Duration, byte[]> {
|
||||
|
||||
@Override
|
||||
@@ -295,7 +265,6 @@ public abstract class Jsr310Converters {
|
||||
* @author Mark Paluch
|
||||
* @since 1.7
|
||||
*/
|
||||
@ReadingConverter
|
||||
static class BytesToDurationConverter extends StringBasedConverter implements Converter<byte[], Duration> {
|
||||
|
||||
@Override
|
||||
@@ -306,9 +275,10 @@ public abstract class Jsr310Converters {
|
||||
|
||||
/**
|
||||
* @author John Blum
|
||||
* @see java.time.OffsetDateTime
|
||||
* @since 3.1.3
|
||||
*/
|
||||
static class OffsetDateTimeToBytesConverter extends StringBasedConverter implements Converter<OffsetDateTime, byte[]> {
|
||||
static class OffsetDateTimeToBytesConverter extends StringBasedConverter
|
||||
implements Converter<OffsetDateTime, byte[]> {
|
||||
|
||||
@Override
|
||||
public byte[] convert(OffsetDateTime source) {
|
||||
@@ -318,9 +288,10 @@ public abstract class Jsr310Converters {
|
||||
|
||||
/**
|
||||
* @author John Blum
|
||||
* @see java.time.OffsetDateTime
|
||||
* @since 3.1.3
|
||||
*/
|
||||
static class BytesToOffsetDateTimeConverter extends StringBasedConverter implements Converter<byte[], OffsetDateTime> {
|
||||
static class BytesToOffsetDateTimeConverter extends StringBasedConverter
|
||||
implements Converter<byte[], OffsetDateTime> {
|
||||
|
||||
@Override
|
||||
public OffsetDateTime convert(byte[] source) {
|
||||
@@ -330,7 +301,7 @@ public abstract class Jsr310Converters {
|
||||
|
||||
/**
|
||||
* @author John Blum
|
||||
* @see java.time.OffsetTime
|
||||
* @since 3.1.3
|
||||
*/
|
||||
static class OffsetTimeToBytesConverter extends StringBasedConverter implements Converter<OffsetTime, byte[]> {
|
||||
|
||||
@@ -342,7 +313,7 @@ public abstract class Jsr310Converters {
|
||||
|
||||
/**
|
||||
* @author John Blum
|
||||
* @see java.time.OffsetTime
|
||||
* @since 3.1.3
|
||||
*/
|
||||
static class BytesToOffsetTimeConverter extends StringBasedConverter implements Converter<byte[], OffsetTime> {
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ public class RedisCustomConversions extends org.springframework.data.convert.Cus
|
||||
|
||||
static {
|
||||
|
||||
List<Object> converters = new ArrayList<>();
|
||||
List<Object> converters = new ArrayList<>(35);
|
||||
|
||||
converters.addAll(BinaryConverters.getConvertersToRegister());
|
||||
converters.addAll(Jsr310Converters.getConvertersToRegister());
|
||||
|
||||
Reference in New Issue
Block a user