Search in sources :

Example 1 with DateFormatSupplier

use of org.simpleflatmapper.util.date.DateFormatSupplier in project SimpleFlatMapper by arnaudroger.

the class JavaTimeHelperTest method testFormattersFromString.

@Test
public void testFormattersFromString() {
    final DateTimeFormatter[] yyyyMMdd = JavaTimeHelper.getDateTimeFormatters(new DateFormatSupplier() {

        @Override
        public String get() {
            return "yyyyMMdd";
        }
    });
    assertEquals(DateTimeFormatter.ofPattern("yyyyMMdd").toString(), yyyyMMdd[0].toString());
    assertEquals(ZoneId.systemDefault(), yyyyMMdd[0].getZone());
}
Also used : DefaultDateFormatSupplier(org.simpleflatmapper.util.date.DefaultDateFormatSupplier) DateFormatSupplier(org.simpleflatmapper.util.date.DateFormatSupplier) DateTimeFormatter(java.time.format.DateTimeFormatter) Test(org.junit.Test)

Example 2 with DateFormatSupplier

use of org.simpleflatmapper.util.date.DateFormatSupplier in project SimpleFlatMapper by arnaudroger.

the class ConverterServiceTest method testCharSequenceConverter.

@Test
public void testCharSequenceConverter() throws Exception {
    testConverter(new StringBuilder("hello"), "hello");
    testConverter("123", Byte.valueOf((byte) 123));
    testConverter("123", Character.valueOf((char) 123));
    testConverter("1234", Short.valueOf((short) 1234));
    testConverter("1234", Integer.valueOf(1234));
    testConverter("1234", Long.valueOf(1234));
    testConverter("1234.56", Float.valueOf(1234.56f));
    testConverter("1234.56", Double.valueOf(1234.56));
    testConverter("type2", ENUM.type2);
    testConverter("20170607", new SimpleDateFormat("yyyyMMdd").parse("20170607"), CharSequence.class, Date.class, new DateFormatSupplier() {

        @Override
        public String get() {
            return "yyyyMMdd";
        }
    });
    testConverter("false", Boolean.FALSE);
    testConverter("true", Boolean.TRUE);
    testConverter("123456789101112", new BigInteger("123456789101112"));
    testConverter("123456789101112.0123456", new BigDecimal("123456789101112.0123456"));
    final UUID uuid = UUID.randomUUID();
    testConverter(uuid.toString(), uuid);
}
Also used : DateFormatSupplier(org.simpleflatmapper.util.date.DateFormatSupplier) BigInteger(java.math.BigInteger) UUID(java.util.UUID) SimpleDateFormat(java.text.SimpleDateFormat) BigDecimal(java.math.BigDecimal) Test(org.junit.Test)

Example 3 with DateFormatSupplier

use of org.simpleflatmapper.util.date.DateFormatSupplier in project SimpleFlatMapper by arnaudroger.

the class JavaBaseConverterFactoryProducer method produce.

@Override
public void produce(Consumer<? super ConverterFactory<?, ?>> consumer) {
    constantConverter(consumer, Number.class, Byte.class, new NumberByteConverter());
    constantConverter(consumer, Number.class, Short.class, new NumberShortConverter());
    constantConverter(consumer, Number.class, Integer.class, new NumberIntegerConverter());
    constantConverter(consumer, Number.class, Long.class, new NumberLongConverter());
    constantConverter(consumer, Number.class, Float.class, new NumberFloatConverter());
    constantConverter(consumer, Number.class, Double.class, new NumberDoubleConverter());
    constantConverter(consumer, Number.class, BigDecimal.class, new NumberBigDecimalConverter());
    constantConverter(consumer, Number.class, BigInteger.class, new NumberBigIntegerConverter());
    constantConverter(consumer, CharSequence.class, Byte.class, new CharSequenceByteConverter());
    constantConverter(consumer, CharSequence.class, BigInteger.class, new CharSequenceBigInteger());
    constantConverter(consumer, CharSequence.class, BigDecimal.class, new CharSequenceBigDecimal());
    constantConverter(consumer, CharSequence.class, Character.class, new CharSequenceCharacterConverter());
    constantConverter(consumer, CharSequence.class, Short.class, new CharSequenceShortConverter());
    constantConverter(consumer, CharSequence.class, Integer.class, new CharSequenceIntegerConverter());
    constantConverter(consumer, CharSequence.class, Long.class, new CharSequenceLongConverter());
    constantConverter(consumer, CharSequence.class, Float.class, new CharSequenceFloatConverter());
    constantConverter(consumer, CharSequence.class, Double.class, new CharSequenceDoubleConverter());
    constantConverter(consumer, CharSequence.class, UUID.class, new CharSequenceUUIDConverter());
    constantConverter(consumer, CharSequence.class, Boolean.class, new CharSequenceBooleanConverter());
    factoryConverter(consumer, new AbstractConverterFactory<CharSequence, Date>(CharSequence.class, Date.class) {

        @Override
        public Converter<? super CharSequence, ? extends Date> newConverter(ConvertingTypes targetedTypes, Object... params) {
            String format = getFormat(params);
            if (format != null) {
                return new CharSequenceToDateConverter(format);
            } else
                return null;
        }

        private String getFormat(Object[] params) {
            String defaultValue = null;
            if (params != null) {
                for (Object o : params) {
                    if (o instanceof DefaultDateFormatSupplier) {
                        defaultValue = ((DefaultDateFormatSupplier) o).get();
                    } else if (o instanceof DateFormatSupplier) {
                        return ((DateFormatSupplier) o).get();
                    }
                }
            }
            return defaultValue;
        }
    });
    factoryConverter(consumer, new AbstractConverterFactory<CharSequence, Enum>(CharSequence.class, Enum.class) {

        @SuppressWarnings("unchecked")
        public Converter<? super CharSequence, ? extends Enum> newConverter(ConvertingTypes targetedTypes, Object... params) {
            return new CharSequenceToEnumConverter(TypeHelper.toClass(targetedTypes.getTo()));
        }

        @Override
        public ConvertingScore score(ConvertingTypes targetedTypes) {
            if (TypeHelper.isAssignable(Enum.class, targetedTypes.getTo())) {
                return new ConvertingScore(ConvertingTypes.getSourceScore(convertingTypes.getFrom(), targetedTypes.getFrom()), ConvertingScore.MAX_SCORE);
            }
            return ConvertingScore.NO_MATCH;
        }
    });
    factoryConverter(consumer, new AbstractConverterFactory<Number, Enum>(Number.class, Enum.class) {

        @SuppressWarnings("unchecked")
        public Converter<? super Number, ? extends Enum> newConverter(ConvertingTypes targetedTypes, Object... params) {
            return new NumberToEnumConverter(TypeHelper.toClass(targetedTypes.getTo()));
        }

        @Override
        public ConvertingScore score(ConvertingTypes targetedTypes) {
            if (TypeHelper.isAssignable(Enum.class, targetedTypes.getTo())) {
                return new ConvertingScore(ConvertingTypes.getSourceScore(convertingTypes.getFrom(), targetedTypes.getFrom()), ConvertingScore.MAX_SCORE);
            }
            return ConvertingScore.NO_MATCH;
        }
    });
    factoryConverter(consumer, new AbstractConverterFactory<Object, Enum>(Object.class, Enum.class) {

        @SuppressWarnings("unchecked")
        public Converter<? super Object, ? extends Enum> newConverter(ConvertingTypes targetedTypes, Object... params) {
            return new ObjectToEnumConverter(TypeHelper.toClass(targetedTypes.getTo()));
        }

        @Override
        public ConvertingScore score(ConvertingTypes targetedTypes) {
            if (TypeHelper.isAssignable(Enum.class, targetedTypes.getTo())) {
                return new ConvertingScore(ConvertingTypes.getSourceScore(convertingTypes.getFrom(), targetedTypes.getFrom()), ConvertingScore.MAX_SCORE);
            }
            return ConvertingScore.NO_MATCH;
        }
    });
    constantConverter(consumer, Object.class, String.class, ToStringConverter.INSTANCE);
    constantConverter(consumer, Object.class, URL.class, new ToStringToURLConverter());
}
Also used : ConvertingTypes(org.simpleflatmapper.converter.ConvertingTypes) DefaultDateFormatSupplier(org.simpleflatmapper.util.date.DefaultDateFormatSupplier) DateFormatSupplier(org.simpleflatmapper.util.date.DateFormatSupplier) Converter(org.simpleflatmapper.converter.Converter) ToStringConverter(org.simpleflatmapper.converter.ToStringConverter) ConvertingScore(org.simpleflatmapper.converter.ConvertingScore) Date(java.util.Date) DefaultDateFormatSupplier(org.simpleflatmapper.util.date.DefaultDateFormatSupplier)

Aggregations

DateFormatSupplier (org.simpleflatmapper.util.date.DateFormatSupplier)3 Test (org.junit.Test)2 DefaultDateFormatSupplier (org.simpleflatmapper.util.date.DefaultDateFormatSupplier)2 BigDecimal (java.math.BigDecimal)1 BigInteger (java.math.BigInteger)1 SimpleDateFormat (java.text.SimpleDateFormat)1 DateTimeFormatter (java.time.format.DateTimeFormatter)1 Date (java.util.Date)1 UUID (java.util.UUID)1 Converter (org.simpleflatmapper.converter.Converter)1 ConvertingScore (org.simpleflatmapper.converter.ConvertingScore)1 ConvertingTypes (org.simpleflatmapper.converter.ConvertingTypes)1 ToStringConverter (org.simpleflatmapper.converter.ToStringConverter)1