21 package org.matsim.api.core.v01;
23 import java.io.IOException;
24 import java.lang.annotation.Retention;
25 import java.lang.annotation.RetentionPolicy;
26 import java.util.HashMap;
29 import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
30 import com.fasterxml.jackson.core.JacksonException;
31 import com.fasterxml.jackson.core.JsonGenerator;
32 import com.fasterxml.jackson.core.JsonParser;
33 import com.fasterxml.jackson.databind.BeanProperty;
34 import com.fasterxml.jackson.databind.DeserializationContext;
35 import com.fasterxml.jackson.databind.JavaType;
36 import com.fasterxml.jackson.databind.JsonDeserializer;
37 import com.fasterxml.jackson.databind.JsonMappingException;
38 import com.fasterxml.jackson.databind.JsonNode;
39 import com.fasterxml.jackson.databind.SerializerProvider;
40 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
41 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
42 import com.fasterxml.jackson.databind.deser.ContextualDeserializer;
43 import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
44 import com.fasterxml.jackson.databind.ser.std.StdSerializer;
48 @Retention(RetentionPolicy.RUNTIME)
49 @JacksonAnnotationsInside
67 public void serialize(T value, JsonGenerator gen, SerializerProvider provider)
throws IOException {
68 gen.writeString(value.toString());
83 this.idClass = idClass;
87 public JsonDeserializer<?>
createContextual(DeserializationContext ctxt, BeanProperty property)
88 throws JsonMappingException {
90 final Class<? extends Object> idClass;
94 type =
property.getType();
96 type = ctxt.getContextualType();
98 idClass = type.containedType(0).getRawClass();
105 public Id<T> deserialize(JsonParser jp, DeserializationContext ctxt)
throws IOException, JacksonException {
106 JsonNode node = jp.getCodec().readTree(jp);
107 return Id.
create(node.asText(), idClass);
128 this.idClass = idClass;
133 JsonNode node = jp.getCodec().readTree(jp);
134 return Id.
create(node.asText(), idClass);
void serialize(T value, JsonGenerator gen, SerializerProvider provider)
Id< T > deserialize(JsonParser jp, DeserializationContext ctxt)
JsonIdDeserializer(Class< T > idClass)
JsonIdContextualDeserializer(Class< T > idClass)
static< T > Id< T > create(final long key, final Class< T > type)
static JsonIdDeserializer<?> getInstance(Class<?> clazz)
JsonIdContextualDeserializer()
JsonDeserializer<?> createContextual(DeserializationContext ctxt, BeanProperty property)
JsonIdSerializer(Class< T > vc)
Id< T > deserialize(JsonParser jp, DeserializationContext ctxt)