diff options
Diffstat (limited to 'src/com/p4square/grow/provider/JsonEncodedProvider.java')
-rw-r--r-- | src/com/p4square/grow/provider/JsonEncodedProvider.java | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/src/com/p4square/grow/provider/JsonEncodedProvider.java b/src/com/p4square/grow/provider/JsonEncodedProvider.java deleted file mode 100644 index 500f761..0000000 --- a/src/com/p4square/grow/provider/JsonEncodedProvider.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright 2013 Jesse Morgan - */ - -package com.p4square.grow.provider; - -import java.io.IOException; - -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.JavaType; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; - -/** - * Provider provides a simple interface for loading and persisting - * objects. - * - * @author Jesse Morgan <jesse@jesterpm.net> - */ -public abstract class JsonEncodedProvider<V> { - public static final ObjectMapper MAPPER = new ObjectMapper(); - static { - MAPPER.configure(SerializationFeature.WRITE_ENUMS_USING_TO_STRING, true); - MAPPER.configure(DeserializationFeature.READ_ENUMS_USING_TO_STRING, true); - MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - } - - protected final Class<V> mClazz; - protected final JavaType mType; - - public JsonEncodedProvider(Class<V> clazz) { - mClazz = clazz; - mType = null; - } - - public JsonEncodedProvider(JavaType type) { - mType = type; - mClazz = null; - } - - /** - * Encode the object as JSON. - * - * @param obj The object to encode. - * @return The JSON encoding of obj. - * @throws IOException if the object cannot be encoded. - */ - protected String encode(V obj) throws IOException { - if (mClazz == String.class) { - return (String) obj; - } - - return MAPPER.writeValueAsString(obj); - } - - /** - * Decode the JSON string as an object. - * - * @param blob The JSON data to decode. - * @return The decoded object or null if blob is null. - * @throws IOException If an object cannot be decoded. - */ - protected V decode(String blob) throws IOException { - if (blob == null) { - return null; - } - - if (mClazz == String.class) { - return (V) blob; - } - - V obj; - if (mClazz != null) { - obj = MAPPER.readValue(blob, mClazz); - - } else { - obj = MAPPER.readValue(blob, mType); - } - - return obj; - } -} - |