diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2013-01-04 17:33:40 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2013-01-04 17:33:40 +0100 |
commit | 8cce8890eca34fead35ad19a0db6d95dd047b3a6 (patch) | |
tree | 1843c791ab50c96c650ddd70a7ac8ec815dde267 /src/main/java/io/trygvis/esper/testing/web/MyObjectMapper.java | |
parent | 4a6c9c52d006ecb717bae7d9b502d9b661a08ccd (diff) | |
download | esper-testing-8cce8890eca34fead35ad19a0db6d95dd047b3a6.tar.gz esper-testing-8cce8890eca34fead35ad19a0db6d95dd047b3a6.tar.bz2 esper-testing-8cce8890eca34fead35ad19a0db6d95dd047b3a6.tar.xz esper-testing-8cce8890eca34fead35ad19a0db6d95dd047b3a6.zip |
o Trying out a custom UUID type for prettier formatting.
Diffstat (limited to 'src/main/java/io/trygvis/esper/testing/web/MyObjectMapper.java')
-rwxr-xr-x | src/main/java/io/trygvis/esper/testing/web/MyObjectMapper.java | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/main/java/io/trygvis/esper/testing/web/MyObjectMapper.java b/src/main/java/io/trygvis/esper/testing/web/MyObjectMapper.java new file mode 100755 index 0000000..bfbd6eb --- /dev/null +++ b/src/main/java/io/trygvis/esper/testing/web/MyObjectMapper.java @@ -0,0 +1,37 @@ +package io.trygvis.esper.testing.web; + +import io.trygvis.esper.testing.*; +import org.codehaus.jackson.*; +import org.codehaus.jackson.map.*; +import org.codehaus.jackson.map.module.*; + +import java.io.*; +import javax.ws.rs.ext.*; + +public class MyObjectMapper implements ContextResolver<ObjectMapper> { + private ObjectMapper objectMapper; + + public MyObjectMapper() throws Exception { + objectMapper = new ObjectMapper(); + SimpleModule module = new SimpleModule("wat", Version.unknownVersion()); + module.addDeserializer(Uuid.class, new UuidDeserializer()); + module.addSerializer(Uuid.class, new UuidSerializer()); + objectMapper.registerModule(module); + } + + public ObjectMapper getContext(Class<?> type) { + return objectMapper; + } + + private static class UuidDeserializer extends JsonDeserializer<Uuid> { + public Uuid deserialize(JsonParser jp, DeserializationContext context) throws IOException { + return Uuid.fromString(jp.getText()); + } + } + + private static class UuidSerializer extends JsonSerializer<Uuid> { + public void serialize(Uuid value, JsonGenerator generator, SerializerProvider provider) throws IOException { + generator.writeString(value.toStringBase64()); + } + } +} |