/** * @since 2.9 */ protected void _serializeAsString(Date value, JsonGenerator g, SerializerProvider provider) throws IOException { if (_customFormat == null) { provider.defaultSerializeDateValue(value, g); return; } // 19-Jul-2017, tatu: Here we will try a simple but (hopefully) effective mechanism for // reusing formatter instance. This is our second attempt, after initially trying simple // synchronization (which turned out to be bottleneck for some users in production...). // While `ThreadLocal` could alternatively be used, it is likely that it would lead to // higher memory footprint, but without much upside -- if we can not reuse, we'll just // clone(), which has some overhead but not drastic one. DateFormat f = _reusedCustomFormat.getAndSet(null); if (f == null) { f = (DateFormat) _customFormat.clone(); } g.writeString(f.format(value)); _reusedCustomFormat.compareAndSet(null, f); } }
provider.defaultSerializeDateValue(rs.getDate(i + 1), jgen); break; provider.defaultSerializeDateValue(rs.getTime(i + 1), jgen); break;
@Override public void serialize(Calendar value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonGenerationException { if (_useTimestamp) { jgen.writeNumber(_timestamp(value)); } else if (_customFormat != null) { // 21-Feb-2011, tatu: not optimal, but better than alternatives: synchronized (_customFormat) { jgen.writeString(_customFormat.format(value)); } } else { provider.defaultSerializeDateValue(value.getTime(), jgen); } }
@Override public void serialize(Calendar value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonGenerationException { if (_useTimestamp) { jgen.writeNumber(_timestamp(value)); } else if (_customFormat != null) { // 21-Feb-2011, tatu: not optimal, but better than alternatives: synchronized (_customFormat) { jgen.writeString(_customFormat.format(value)); } } else { provider.defaultSerializeDateValue(value.getTime(), jgen); } }
@Override public void serialize(Date value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonGenerationException { if (_useTimestamp) { jgen.writeNumber(_timestamp(value)); } else if (_customFormat != null) { // 21-Feb-2011, tatu: not optimal, but better than alternatives: synchronized (_customFormat) { jgen.writeString(_customFormat.format(value)); } } else { provider.defaultSerializeDateValue(value, jgen); } } }
@Override public void serialize(Date value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonGenerationException { if (_useTimestamp) { jgen.writeNumber(_timestamp(value)); } else if (_customFormat != null) { // 21-Feb-2011, tatu: not optimal, but better than alternatives: synchronized (_customFormat) { jgen.writeString(_customFormat.format(value)); } } else { provider.defaultSerializeDateValue(value, jgen); } } }
boolean writeSpecial(Object obj) throws IOException { if(obj instanceof Date) { serializerProvider.defaultSerializeDateValue((Date) obj, jgen); } else if(obj instanceof Temporal) { serializerProvider.defaultSerializeValue(obj, jgen); } else if(obj instanceof URL) { jgen.writeString(obj.toString()); } else if(obj instanceof URI) { jgen.writeString(obj.toString()); } else if(obj instanceof UUID) { jgen.writeString(obj.toString()); } else if(obj instanceof Class) { jgen.writeString(((Class) obj).getCanonicalName()); } else { return false; } return true; }
@Override public void serialize(Calendar value, JsonGenerator jgen, SerializerProvider provider) throws IOException { if (_asTimestamp(provider)) { jgen.writeNumber(_timestamp(value)); } else if (_customFormat != null) { // 21-Feb-2011, tatu: not optimal, but better than alternatives: synchronized (_customFormat) { // _customformat cannot parse Calendar, so Date should be passed jgen.writeString(_customFormat.format(value.getTime())); } } else { provider.defaultSerializeDateValue(value.getTime(), jgen); } }
@Override public void serialize(Calendar value, JsonGenerator jgen, SerializerProvider provider) throws IOException { if (_asTimestamp(provider)) { jgen.writeNumber(_timestamp(value)); } else if (_customFormat != null) { // 21-Feb-2011, tatu: not optimal, but better than alternatives: synchronized (_customFormat) { // _customformat cannot parse Calendar, so Date should be passed jgen.writeString(_customFormat.format(value.getTime())); } } else { provider.defaultSerializeDateValue(value.getTime(), jgen); } }
@Override public void serialize(Calendar value, JsonGenerator jgen, SerializerProvider provider) throws IOException { if (_asTimestamp(provider)) { jgen.writeNumber(_timestamp(value)); } else if (_customFormat != null) { // 21-Feb-2011, tatu: not optimal, but better than alternatives: synchronized (_customFormat) { // _customformat cannot parse Calendar, so Date should be passed jgen.writeString(_customFormat.format(value.getTime())); } } else { provider.defaultSerializeDateValue(value.getTime(), jgen); } }
/** * @since 2.9 */ protected void _serializeAsString(Date value, JsonGenerator g, SerializerProvider provider) throws IOException { if (_customFormat == null) { provider.defaultSerializeDateValue(value, g); return; } // 19-Jul-2017, tatu: Here we will try a simple but (hopefully) effective mechanism for // reusing formatter instance. This is our second attempt, after initially trying simple // synchronization (which turned out to be bottleneck for some users in production...). // While `ThreadLocal` could alternatively be used, it is likely that it would lead to // higher memory footprint, but without much upside -- if we can not reuse, we'll just // clone(), which has some overhead but not drastic one. DateFormat f = _reusedCustomFormat.getAndSet(null); if (f == null) { f = (DateFormat) _customFormat.clone(); } g.writeString(f.format(value)); _reusedCustomFormat.compareAndSet(null, f); } }
@Override public void serialize(Date value, JsonGenerator gen, SerializerProvider provider) throws IOException, JsonGenerationException { if (_asTimestamp(provider)) { gen.writeNumber(_timestamp(value)); } else if (_customFormat != null) { // 21-Feb-2011, tatu: not optimal, but better than alternatives: synchronized (_customFormat) { gen.writeString(_customFormat.format(value)); } } else { provider.defaultSerializeDateValue(value, gen); } } }
@Override public void serialize(Date value, JsonGenerator gen, SerializerProvider provider) throws IOException, JsonGenerationException { if (_asTimestamp(provider)) { gen.writeNumber(_timestamp(value)); } else if (_customFormat != null) { // 21-Feb-2011, tatu: not optimal, but better than alternatives: synchronized (_customFormat) { gen.writeString(_customFormat.format(value)); } } else { provider.defaultSerializeDateValue(value, gen); } } }
@Override public void serialize(Date value, JsonGenerator gen, SerializerProvider provider) throws IOException { if (_asTimestamp(provider)) { gen.writeNumber(_timestamp(value)); } else if (_customFormat != null) { // 21-Feb-2011, tatu: not optimal, but better than alternatives: synchronized (_customFormat) { gen.writeString(_customFormat.format(value)); } } else { provider.defaultSerializeDateValue(value, gen); } } }
jgen.writeNull(); } else { provider.defaultSerializeDateValue(rs.getDate(i + 1), jgen); jgen.writeNull(); } else { provider.defaultSerializeDateValue(rs.getTime(i + 1), jgen); jgen.writeNull(); } else { provider.defaultSerializeDateValue(rs.getTimestamp(i + 1), jgen);
jgen.writeStringField( "name", value.getName() ); jgen.writeFieldName( "created" ); provider.defaultSerializeDateValue( value.getCreated(), jgen ); provider.defaultSerializeDateValue( value.getLastUpdated(), jgen );
jgen.writeStringField( "name", value.getName() ); jgen.writeFieldName( "created" ); provider.defaultSerializeDateValue( value.getCreated(), jgen ); provider.defaultSerializeDateValue( value.getLastUpdated(), jgen );