/** * You can override this methods if you want to change the default converters (remove some, * change the order, etc). * * @return the default converters list, must be not null. */ protected List<Converter<?>> getDefaultConverters() { List<Converter<?>> converters = new ArrayList<Converter<?>>(); converters.add(DefaultConverters.StringConverter.instance); converters.add(DefaultConverters.NumberConverter.instance); converters.add(new DefaultConverters.DateConverter(dateFormat, useDateAsTimestamp)); converters.add(DefaultConverters.URLConverter.instance); converters.add(DefaultConverters.URIConverter.instance); converters.add(DefaultConverters.TimestampConverter.instance); converters.add(DefaultConverters.BigDecimalConverter.instance); converters.add(DefaultConverters.BigIntegerConverter.instance); converters.add(DefaultConverters.UUIDConverter.instance); converters.add(DefaultConverters.FileConverter.instance); return converters; }
@Override public Calendar deserialize(ObjectReader reader, Context ctx) { Calendar cal = null; if (ValueType.NULL != reader.getValueType()) { cal = new GregorianCalendar(); cal.setTime(dateConverter.deserialize(reader, ctx)); } return cal; } }
@Override public void serialize(XMLGregorianCalendar object, ObjectWriter writer, Context ctx) { converter.serialize(object.toGregorianCalendar().getTime(), writer, ctx); }
/** * You can override this methods if you want to change the default converters (remove some, * change the order, etc). * * @return the default converters list, must be not null. */ protected List<Converter<?>> getDefaultConverters() { List<Converter<?>> converters = new ArrayList<Converter<?>>(); converters.add(DefaultConverters.StringConverter.instance); converters.add(DefaultConverters.NumberConverter.instance); converters.add(new DefaultConverters.DateConverter(dateFormat, useDateAsTimestamp)); converters.add(DefaultConverters.URLConverter.instance); converters.add(DefaultConverters.URIConverter.instance); converters.add(DefaultConverters.TimestampConverter.instance); converters.add(DefaultConverters.BigDecimalConverter.instance); converters.add(DefaultConverters.BigIntegerConverter.instance); converters.add(DefaultConverters.UUIDConverter.instance); converters.add(DefaultConverters.FileConverter.instance); return converters; }
@Override public Converter create(BeanProperty property, Genson genson) { JsonDateFormat ann = property.getAnnotation(JsonDateFormat.class); if (ann != null) { Locale locale = ann.lang().isEmpty() ? Locale.getDefault() : new Locale( ann.lang()); DateFormat dateFormat = ann.value() != null && !ann.value().isEmpty() ? new SimpleDateFormat(ann.value(), locale) : SimpleDateFormat.getInstance(); if (Date.class.isAssignableFrom(property.getRawClass())) return new DateConverter(dateFormat, ann.asTimeInMillis()); if (Calendar.class.isAssignableFrom(property.getRawClass())) return new CalendarConverter( new DateConverter(dateFormat, ann.asTimeInMillis())); } return null; } }
/** * Override this method if you want to change the default converter factories. * * @param factories list, is not null. */ protected void addDefaultConverterFactories(List<Factory<? extends Converter<?>>> factories) { factories.add(DefaultConverters.ArrayConverterFactory.instance); factories.add(DefaultConverters.CollectionConverterFactory.instance); factories.add(DefaultConverters.MapConverterFactory.instance); factories.add(DefaultConverters.EnumConverterFactory.instance); factories.add(DefaultConverters.PrimitiveConverterFactory.instance); factories.add(DefaultConverters.UntypedConverterFactory.instance); factories.add(new DefaultConverters.CalendarConverterFactory( new DefaultConverters.DateConverter(dateFormat, useDateAsTimestamp) )); }
@Override public Converter create(BeanProperty property, Genson genson) { JsonDateFormat ann = property.getAnnotation(JsonDateFormat.class); if (ann != null) { Locale locale = ann.lang().isEmpty() ? Locale.getDefault() : new Locale( ann.lang()); DateFormat dateFormat = ann.value() != null && !ann.value().isEmpty() ? new SimpleDateFormat(ann.value(), locale) : SimpleDateFormat.getInstance(); if (Date.class.isAssignableFrom(property.getRawClass())) return new DateConverter(dateFormat, ann.asTimeInMillis()); if (Calendar.class.isAssignableFrom(property.getRawClass())) return new CalendarConverter( new DateConverter(dateFormat, ann.asTimeInMillis())); } return null; } }
/** * Override this method if you want to change the default converter factories. * * @param factories list, is not null. */ protected void addDefaultConverterFactories(List<Factory<? extends Converter<?>>> factories) { factories.add(DefaultConverters.ArrayConverterFactory.instance); factories.add(DefaultConverters.CollectionConverterFactory.instance); factories.add(DefaultConverters.MapConverterFactory.instance); factories.add(DefaultConverters.EnumConverterFactory.instance); factories.add(DefaultConverters.PrimitiveConverterFactory.instance); factories.add(DefaultConverters.UntypedConverterFactory.instance); factories.add(new DefaultConverters.CalendarConverterFactory( new DefaultConverters.DateConverter(dateFormat, useDateAsTimestamp) )); }
public Date deserialize(ObjectReader reader, Context ctx) { try { ValueType valueType = reader.getValueType(); if (valueType == ValueType.INTEGER) return new Date(reader.valueAsLong()); else if (valueType == ValueType.STRING) return read(reader.valueAsString()); else throw new JsonBindingException(String.format("Can not deserialize type %s to Date, " + "only numeric and string accepted.", valueType)); } catch (ParseException e) { throw new JsonBindingException("Could not parse date " + reader.valueAsString(), e); } }
public Date deserialize(ObjectReader reader, Context ctx) { try { ValueType valueType = reader.getValueType(); if (valueType == ValueType.INTEGER) return new Date(reader.valueAsLong()); else if (valueType == ValueType.STRING) return read(reader.valueAsString()); else throw new JsonBindingException(String.format("Can not deserialize type %s to Date, " + "only numeric and string accepted.", valueType)); } catch (ParseException e) { throw new JsonBindingException("Could not parse date " + reader.valueAsString(), e); } }
@Override public void serialize(Calendar object, ObjectWriter writer, Context ctx) { dateConverter.serialize(object.getTime(), writer, ctx); }
@Override public void serialize(Calendar object, ObjectWriter writer, Context ctx) { dateConverter.serialize(object.getTime(), writer, ctx); }
@Override public void serialize(XMLGregorianCalendar object, ObjectWriter writer, Context ctx) { converter.serialize(object.toGregorianCalendar().getTime(), writer, ctx); }
public void serialize(Date obj, ObjectWriter writer, Context ctx) { if (asTimeInMillis) writer.writeValue(obj.getTime()); else writer.writeUnsafeValue(format(obj)); }
public void serialize(Date obj, ObjectWriter writer, Context ctx) { if (asTimeInMillis) writer.writeValue(obj.getTime()); else writer.writeUnsafeValue(format(obj)); }
@Override public Calendar deserialize(ObjectReader reader, Context ctx) { Calendar cal = null; if (ValueType.NULL != reader.getValueType()) { cal = new GregorianCalendar(); cal.setTime(dateConverter.deserialize(reader, ctx)); } return cal; } }