aboutsummaryrefslogtreecommitdiffstats
path: root/gson/src/main/java/org/onap/policy/common/gson/GsonMessageBodyHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'gson/src/main/java/org/onap/policy/common/gson/GsonMessageBodyHandler.java')
-rw-r--r--gson/src/main/java/org/onap/policy/common/gson/GsonMessageBodyHandler.java26
1 files changed, 14 insertions, 12 deletions
diff --git a/gson/src/main/java/org/onap/policy/common/gson/GsonMessageBodyHandler.java b/gson/src/main/java/org/onap/policy/common/gson/GsonMessageBodyHandler.java
index ad270910..37d24177 100644
--- a/gson/src/main/java/org/onap/policy/common/gson/GsonMessageBodyHandler.java
+++ b/gson/src/main/java/org/onap/policy/common/gson/GsonMessageBodyHandler.java
@@ -37,6 +37,7 @@ import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.ext.MessageBodyReader;
import javax.ws.rs.ext.MessageBodyWriter;
import javax.ws.rs.ext.Provider;
+import lombok.AccessLevel;
import lombok.Getter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -54,7 +55,7 @@ public class GsonMessageBodyHandler implements MessageBodyReader<Object>, Messag
/**
* Object to be used to serialize and de-serialize.
*/
- @Getter
+ @Getter(AccessLevel.PROTECTED)
private final Gson gson;
/**
@@ -62,17 +63,7 @@ public class GsonMessageBodyHandler implements MessageBodyReader<Object>, Messag
* into Integer/Long, where possible.
*/
public GsonMessageBodyHandler() {
- this(new GsonBuilder());
- }
-
- /**
- * Constructs the object, using a Gson object that translates Doubles inside of Maps
- * into Integer/Long, where possible.
- *
- * @param builder builder to use to create the gson object
- */
- public GsonMessageBodyHandler(GsonBuilder builder) {
- this(builder.registerTypeAdapterFactory(new MapDoubleAdapterFactory()).create());
+ this(configBuilder(new GsonBuilder()).create());
}
/**
@@ -86,6 +77,17 @@ public class GsonMessageBodyHandler implements MessageBodyReader<Object>, Messag
logger.info("Using GSON for REST calls");
}
+ /**
+ * Configures a builder with the adapters normally used by this handler (e.g., mapper
+ * that converts Double to Integer).
+ *
+ * @param builder builder to be configured
+ * @return the configured builder
+ */
+ public static GsonBuilder configBuilder(GsonBuilder builder) {
+ return builder.registerTypeAdapterFactory(new MapDoubleAdapterFactory());
+ }
+
@Override
public boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
return canHandle(mediaType);