Skip to content

Commit

Permalink
Add support for deserializing HostAndPort.
Browse files Browse the repository at this point in the history
  • Loading branch information
codahale committed Apr 3, 2012
1 parent f9cd302 commit d0c9c8f
Showing 1 changed file with 15 additions and 0 deletions.
@@ -1,6 +1,7 @@
package com.yammer.dropwizard.json;

import com.google.common.cache.CacheBuilderSpec;
import com.google.common.net.HostAndPort;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.Version;
import org.codehaus.jackson.map.*;
Expand All @@ -10,6 +11,15 @@
import java.io.IOException;

public class GuavaExtrasModule extends Module {
@JsonCachable
private static class HostAndPortDeserializer extends JsonDeserializer<HostAndPort> {
@Override
public HostAndPort deserialize(JsonParser jp,
DeserializationContext ctxt) throws IOException {
return HostAndPort.fromString(jp.getText());
}
}

@JsonCachable
private static class CacheBuilderSpecDeserializer extends JsonDeserializer<CacheBuilderSpec> {
@Override
Expand All @@ -33,6 +43,11 @@ public JsonDeserializer<?> findBeanDeserializer(JavaType type,
if (CacheBuilderSpec.class.isAssignableFrom(type.getRawClass())) {
return new CacheBuilderSpecDeserializer();
}

if (HostAndPort.class.isAssignableFrom(type.getRawClass())) {
return new HostAndPortDeserializer();
}

return super.findBeanDeserializer(type, config, provider, beanDesc, property);
}
}
Expand Down

0 comments on commit d0c9c8f

Please sign in to comment.