aboutsummaryrefslogtreecommitdiffstats
path: root/gson/src/main/java/org/onap/policy/common/gson/JacksonHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'gson/src/main/java/org/onap/policy/common/gson/JacksonHandler.java')
-rw-r--r--gson/src/main/java/org/onap/policy/common/gson/JacksonHandler.java27
1 files changed, 19 insertions, 8 deletions
diff --git a/gson/src/main/java/org/onap/policy/common/gson/JacksonHandler.java b/gson/src/main/java/org/onap/policy/common/gson/JacksonHandler.java
index 6d946439..6df5ad2e 100644
--- a/gson/src/main/java/org/onap/policy/common/gson/JacksonHandler.java
+++ b/gson/src/main/java/org/onap/policy/common/gson/JacksonHandler.java
@@ -20,6 +20,7 @@
package org.onap.policy.common.gson;
+import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -36,20 +37,30 @@ public class JacksonHandler extends GsonMessageBodyHandler {
* Constructs the object.
*/
public JacksonHandler() {
- this(new GsonBuilder());
+ this(configBuilder(new GsonBuilder()).create());
+ }
+ /**
+ * Constructs the object.
+ *
+ * @param gson the Gson object to be used to serialize and de-serialize
+ */
+ public JacksonHandler(Gson gson) {
+ super(gson);
logger.info("Using GSON with Jackson behaviors for REST calls");
}
/**
- * Constructs the object.
- * @param builder builder to use to create the gson object
+ * Configures a builder with the adapters normally used by this handler (e.g.,
+ * adapters for GsonJsonXxx annotations).
+ *
+ * @param builder builder to be configured
+ * @return the configured builder
*/
- public JacksonHandler(GsonBuilder builder) {
- super(builder
- .registerTypeAdapterFactory(new JacksonFieldAdapterFactory())
+ public static GsonBuilder configBuilder(GsonBuilder builder) {
+ return builder.registerTypeAdapterFactory(new JacksonFieldAdapterFactory())
.registerTypeAdapterFactory(new JacksonMethodAdapterFactory())
- .setExclusionStrategies(new JacksonExclusionStrategy()));
+ .registerTypeAdapterFactory(new MapDoubleAdapterFactory())
+ .setExclusionStrategies(new JacksonExclusionStrategy());
}
-
}