@Override public T deserialize(Object val) { return convert(targetType, val); }
@Override public <T> T convert(Class<T> aClass, Object o) { return (T) serde.deserialize((S) o); }
public ElideSettingsBuilder withEpochDates() { serdes.put(Date.class, new EpochToDateConverter<Date>(Date.class)); serdes.put(java.sql.Date.class, new EpochToDateConverter<java.sql.Date>(java.sql.Date.class)); serdes.put(java.sql.Time.class, new EpochToDateConverter<java.sql.Time>(java.sql.Time.class)); serdes.put(java.sql.Timestamp.class, new EpochToDateConverter<java.sql.Timestamp>(java.sql.Timestamp.class)); return this; }
@Override public Object serialize(Object o) { Serde<Object, Date> dateSerde = CoerceUtil.lookup(Date.class); return dateSerde.serialize((Date) o); }
@Override public <T> T convert(Class<T> cls, Object value) { try { if (ClassUtils.isAssignable(value.getClass(), String.class)) { return stringToDate(cls, (String) value); } if (ClassUtils.isAssignable(value.getClass(), Number.class, true)) { return numberToDate(cls, (Number) value); } throw new UnsupportedOperationException(value.getClass().getSimpleName() + " is not a valid epoch"); } catch (IndexOutOfBoundsException | ReflectiveOperationException | UnsupportedOperationException | IllegalArgumentException e) { throw new InvalidAttributeException("Unknown " + cls.getSimpleName() + " value " + value, e); } }
/** * Convert value to enum. * * @param cls enum to convert to * @param value value to convert * @param <T> enum type * @return enum */ @Override public <T> T convert(Class<T> cls, Object value) { try { if (ClassUtils.isAssignable(value.getClass(), String.class)) { return stringToEnum(cls, (String) value); } else if (ClassUtils.isAssignable(value.getClass(), Integer.class, true)) { return intToEnum(cls, (Integer) value); } else { throw new UnsupportedOperationException(value.getClass().getSimpleName() + " to Enum no supported"); } } catch (IndexOutOfBoundsException | ReflectiveOperationException | UnsupportedOperationException | IllegalArgumentException e) { throw new InvalidAttributeException("Unknown " + cls.getSimpleName() + " value " + value, e); } }
public ElideSettingsBuilder withISO8601Dates(String dateFormat, TimeZone tz) { serdes.put(Date.class, new ISO8601DateSerde(dateFormat, tz)); serdes.put(java.sql.Date.class, new ISO8601DateSerde(dateFormat, tz, java.sql.Date.class)); serdes.put(java.sql.Time.class, new ISO8601DateSerde(dateFormat, tz, java.sql.Time.class)); serdes.put(java.sql.Timestamp.class, new ISO8601DateSerde(dateFormat, tz, java.sql.Timestamp.class)); return this; }
private static <T> T stringToDate(Class<T> cls, String epoch) throws ReflectiveOperationException { return numberToDate(cls, Long.parseLong(epoch)); } }
@Override public <T> T convert(Class<T> aClass, Object o) { return (T) serde.deserialize((S) o); }
@Override public Object serialize(Object o) { Serde<Object, Date> dateSerde = CoerceUtil.lookup(Date.class); return dateSerde.serialize((Date) o); }
@Override public <T> T convert(Class<T> cls, Object value) { try { if (ClassUtils.isAssignable(value.getClass(), String.class)) { return stringToDate(cls, (String) value); } if (ClassUtils.isAssignable(value.getClass(), Number.class, true)) { return numberToDate(cls, (Number) value); } throw new UnsupportedOperationException(value.getClass().getSimpleName() + " is not a valid epoch"); } catch (IndexOutOfBoundsException | ReflectiveOperationException | UnsupportedOperationException | IllegalArgumentException e) { throw new InvalidAttributeException("Unknown " + cls.getSimpleName() + " value " + value, e); } }
/** * Convert value to enum. * * @param cls enum to convert to * @param value value to convert * @param <T> enum type * @return enum */ @Override public <T> T convert(Class<T> cls, Object value) { try { if (ClassUtils.isAssignable(value.getClass(), String.class)) { return stringToEnum(cls, (String) value); } else if (ClassUtils.isAssignable(value.getClass(), Integer.class, true)) { return intToEnum(cls, (Integer) value); } else { throw new UnsupportedOperationException(value.getClass().getSimpleName() + " to Enum no supported"); } } catch (IndexOutOfBoundsException | ReflectiveOperationException | UnsupportedOperationException | IllegalArgumentException e) { throw new InvalidAttributeException("Unknown " + cls.getSimpleName() + " value " + value, e); } }
@Override public T deserialize(Object val) { return convert(targetType, val); }
public ElideSettingsBuilder withEpochDates() { serdes.put(Date.class, new EpochToDateConverter<Date>(Date.class)); serdes.put(java.sql.Date.class, new EpochToDateConverter<java.sql.Date>(java.sql.Date.class)); serdes.put(java.sql.Time.class, new EpochToDateConverter<java.sql.Time>(java.sql.Time.class)); serdes.put(java.sql.Timestamp.class, new EpochToDateConverter<java.sql.Timestamp>(java.sql.Timestamp.class)); return this; }
public ElideSettingsBuilder withISO8601Dates(String dateFormat, TimeZone tz) { serdes.put(Date.class, new ISO8601DateSerde(dateFormat, tz)); serdes.put(java.sql.Date.class, new ISO8601DateSerde(dateFormat, tz, java.sql.Date.class)); serdes.put(java.sql.Time.class, new ISO8601DateSerde(dateFormat, tz, java.sql.Time.class)); serdes.put(java.sql.Timestamp.class, new ISO8601DateSerde(dateFormat, tz, java.sql.Timestamp.class)); return this; }
private static <T> T stringToDate(Class<T> cls, String epoch) throws ReflectiveOperationException { return numberToDate(cls, Long.parseLong(epoch)); } }
@Override public Date parseValue(Object o) { Serde<Object, Date> dateSerde = CoerceUtil.lookup(Date.class); return dateSerde.deserialize((Object) o); }
@Override public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { Serde<?, Date> serde = CoerceUtil.lookup(Date.class); jsonGenerator.writeObject(serde.serialize(date)); } }
@Override public Date parseValue(Object o) { Serde<Object, Date> dateSerde = CoerceUtil.lookup(Date.class); return dateSerde.deserialize((Object) o); }
@Override public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { Serde<?, Date> serde = CoerceUtil.lookup(Date.class); jsonGenerator.writeObject(serde.serialize(date)); } }