
public.javadoc.org.spincast.plugins.gson.SpincastGsonManager.html Maven / Gradle / Ivy
Show all versions of spincast-website Show documentation
SpincastGsonManager (org.spincast:spincast-framework 2.1.1 API)
Package org.spincast.plugins.gson
Class SpincastGsonManager
java.lang.Object
org.spincast.plugins.gson.SpincastGsonManager
- All Implemented Interfaces:
JsonManager
-
Constructor Summary
Constructors
Constructor
Description
SpincastGsonManager(com.google.gson.JsonDeserializer<JsonObject> jsonObjectDeserializer,
com.google.gson.JsonDeserializer<JsonArray> jsonArrayDeserializer,
com.google.gson.JsonSerializer<JsonObject> jsonObjectSerializer,
com.google.gson.JsonSerializer<JsonArray> jsonArraySerializer,
com.google.gson.JsonSerializer<Date> dateSerializer,
com.google.gson.JsonSerializer<Instant> instantSerializer,
com.google.gson.JsonSerializer<BigDecimal> bigDecimalSerializer,
com.google.gson.JsonSerializer<Enum<?>> enumSerializer,
com.google.gson.JsonSerializer<Class<?>> classSerializer,
com.google.gson.JsonSerializer<Throwable> throwableSerializer,
JsonPathUtils jsonPathUtils,
JsonObjectFactory jsonObjectFactory,
SpincastConfig spincastConfig,
SpincastUtils spincastUtils,
FormFactory formFactory,
com.google.inject.Provider<com.google.inject.Injector> guiceProvider)
-
Method Summary
Modifier and Type
Method
Description
Tries to clone an object to a JsonObject
or
a JsonArray
, if the object is not of
a primitive type (or BigDecimal
).
Tries to clone an object to a JsonObject
or
a JsonArray
, if the object is not of
a primitive type (or BigDecimal
).
cloneJsonArray(JsonArray jsonArray,
boolean mutable)
Deep copy of the JsonArray
, so any
modification to the original won't affect the
clone, and vice-versa.
cloneJsonObject(JsonObject jsonObject,
boolean mutable)
Deep copy of the JsonObject
, so any
modification to the original won't affect the
clone, and vice-versa.
protected void
configureGsonBuilder(com.google.gson.GsonBuilder gsonBuilder)
Configure the Gson builder
com.google.gson.JsonElement
convertJsonObjectElementToGsonJsonElement(Object originalObject)
convertToJsonDate(Date date)
Converts a Date to a Json
date format.
convertToNativeType(Object originalObject)
Convert a random object to a valid native JsonObject type, if
it's not already.
create()
Creates an empty JsonObject
Creates an empty JsonArray
.
createForm(String formName)
Creates an empty Form
, which is a JsonObject +
a validations container.
protected void
enumsToFriendlyJsonArray(Enum<?>[] enumValues)
Convert the enums to an array of JsonObjects
that
have a ".name" property (the name()
of the enum)
and a ".label" property (the toString()
of the
enum).
enumToFriendlyJsonObject(Enum<?> enumValue)
Convert the enum value to a JsonObject
that
has a ".name" property (the name()
of the enum)
and a ".label" property (the toString()
of the
enum)
fromClasspathFile(String path)
Creates a JsonObject
from a classpath
Json file.
fromCollectionToJsonArray(Collection<?> collection)
Creates a JsonArray
from a random collection.
Creates a JsonObject
from a Json file.
Creates a JsonObject
from the path of
a file, on the file system.
fromInputStream(InputStream inputStream)
Creates a JsonObject
from an inputStream.
<T> T
fromInputStream(InputStream inputStream,
Class<T> clazz)
Creates an instance of the specified T
type
from a Json
inputStream.
fromInputStreamArray(InputStream inputStream)
Creates a JsonArray
from an inputStream.
fromInputStreamToMap(InputStream inputStream)
Creates a Map<String, Object>
from a Json
inputStream.
fromListArray(List<?> elements)
Creates a JsonArray
from a List
of elements.
Creates an empty JsonObject
based on the specified Map.
Creates a JsonObject
based on the specified Map.
fromObject(Object object)
Creates a JsonObject
from a random object..
fromString(String jsonString)
Creates a JsonObject
from a Json
String.
<T> T
fromString(String jsonString,
Class<T> clazz)
Creates an instance of the specified T
type
from a Json
String.
fromStringArray(String jsonString)
Creates a JsonArray
from a Json
String.
fromStringToMap(String jsonString)
Creates a Map<String, Object>
from a Json
String.
protected com.google.gson.JsonSerializer<BigDecimal>
protected com.google.gson.JsonSerializer<Class<?>>
protected com.google.gson.JsonSerializer<Date>
getElementAtJsonPath(JsonArray array,
String jsonPath)
Gets an element from the JsonArray
at the
specified JsonPath
.
getElementAtJsonPath(JsonArray array,
String jsonPath,
Object defaultValue)
Gets an element from the JsonArray
at the
specified JsonPath
.
getElementAtJsonPath(JsonObject obj,
String jsonPath)
Gets an element from the JsonObject
at the specified JsonPath
.
getElementAtJsonPath(JsonObject obj,
String jsonPath,
Object defaultValue)
Gets an element from the JsonObject
at the specified JsonPath
.
protected com.google.gson.JsonSerializer<Enum<?>>
protected FormFactory
protected String
protected String
protected String
com.google.gson.Gson
getGson()
com.google.gson.Gson
protected com.google.inject.Injector
getGuice()
protected com.google.gson.JsonSerializer<Instant>
protected com.google.gson.JsonDeserializer<JsonArray>
protected com.google.gson.JsonSerializer<JsonArray>
protected com.google.gson.JsonDeserializer<JsonObject>
protected JsonObjectFactory
protected com.google.gson.JsonSerializer<JsonObject>
protected JsonPathUtils
protected int
protected Object
getObjectFromGsonJsonElement(com.google.gson.JsonElement jsonElement)
protected SpincastConfig
protected SpincastUtils
protected com.google.gson.JsonSerializer<Throwable>
protected void
injectDependencies(Object obj)
Once the deserialization of an Object is done,
we inject dependencies using Guice.
boolean
isElementExists(JsonArray array,
String jsonPath)
Does the array contain an element at
the specified JsonPath
(even if
null
)?
boolean
isElementExists(JsonObject obj,
String jsonPath)
Does the object contain an element at
the specified JsonPath
(even if
null
)?
parseDateFromJson(String str)
Converts a Json
date (ISO-8601) to a
Java UTC
date.
void
putElementAtJsonPath(JsonObjectOrArray objOrArray,
String jsonPath,
Object value)
Puts an element in the object at the specified JsonPath
.
void
putElementAtJsonPath(JsonObjectOrArray objOrArray,
String jsonPath,
Object value,
boolean clone)
Puts a clone of the element in the object at the
specified JsonPath
.
protected void
registerBigDecimalSerializer(com.google.gson.GsonBuilder gsonBuilder)
protected void
registerClassSerializer(com.google.gson.GsonBuilder gsonBuilder)
protected void
registerCustomDeserializers(com.google.gson.GsonBuilder gsonBuilder)
protected void
registerCustomSerializers(com.google.gson.GsonBuilder gsonBuilder)
protected void
registerDateSerializer(com.google.gson.GsonBuilder gsonBuilder)
protected void
registerEnumSerializer(com.google.gson.GsonBuilder gsonBuilder)
protected void
registerInstantSerializer(com.google.gson.GsonBuilder gsonBuilder)
protected void
registerJsonArrayDeserializer(com.google.gson.GsonBuilder gsonBuilder)
protected void
registerJsonArraySerializer(com.google.gson.GsonBuilder gsonBuilder)
protected void
registerJsonObjectDeserializer(com.google.gson.GsonBuilder gsonBuilder)
protected void
registerJsonObjectSerializer(com.google.gson.GsonBuilder gsonBuilder)
protected void
registerThrowableSerializer(com.google.gson.GsonBuilder gsonBuilder)
void
removeElementAtJsonPath(JsonArray array,
String jsonPath)
Removes an element at the specified JsonPath
from the
array.
void
removeElementAtJsonPath(JsonObject obj,
String jsonPath)
Removes an element at the specified JsonPath
from the
object.
toJsonString(Object obj)
Gets the Json
String representation of
the specified object.
toJsonString(Object obj,
boolean pretty)
Gets the Json
String representation of the
specified object.
-
Constructor Details
-
SpincastGsonManager
@Inject
public SpincastGsonManager(com.google.gson.JsonDeserializer<JsonObject> jsonObjectDeserializer,
com.google.gson.JsonDeserializer<JsonArray> jsonArrayDeserializer,
com.google.gson.JsonSerializer<JsonObject> jsonObjectSerializer,
com.google.gson.JsonSerializer<JsonArray> jsonArraySerializer,
com.google.gson.JsonSerializer<Date> dateSerializer,
com.google.gson.JsonSerializer<Instant> instantSerializer,
com.google.gson.JsonSerializer<BigDecimal> bigDecimalSerializer,
com.google.gson.JsonSerializer<Enum<?>> enumSerializer,
com.google.gson.JsonSerializer<Class<?>> classSerializer,
com.google.gson.JsonSerializer<Throwable> throwableSerializer,
JsonPathUtils jsonPathUtils,
JsonObjectFactory jsonObjectFactory,
SpincastConfig spincastConfig,
SpincastUtils spincastUtils,
FormFactory formFactory,
com.google.inject.Provider<com.google.inject.Injector> guiceProvider)
-
Method Details
-
getJsonObjectDeserializer
-
getJsonArrayDeserializer
-
getJsonObjectSerializer
-
getJsonArraySerializer
-
getDateSerializer
-
getInstantSerializer
-
getBigDecimalSerializer
-
getEnumSerializer
-
getClassSerializer
-
getThrowableSerializer
-
getJsonPathUtils
-
getJsonObjectFactory
-
getSpincastConfig
-
getSpincastUtils
-
getFormFactory
-
getGuice
protected com.google.inject.Injector getGuice()
-
getGson
public com.google.gson.Gson getGson()
-
getGsonPrettyPrinting
public com.google.gson.Gson getGsonPrettyPrinting()
-
createGsons
protected void createGsons()
-
configureGsonBuilder
protected void configureGsonBuilder(com.google.gson.GsonBuilder gsonBuilder)
Configure the Gson builder
-
registerCustomDeserializers
protected void registerCustomDeserializers(com.google.gson.GsonBuilder gsonBuilder)
-
registerJsonObjectDeserializer
protected void registerJsonObjectDeserializer(com.google.gson.GsonBuilder gsonBuilder)
-
registerJsonArrayDeserializer
protected void registerJsonArrayDeserializer(com.google.gson.GsonBuilder gsonBuilder)
-
registerCustomSerializers
protected void registerCustomSerializers(com.google.gson.GsonBuilder gsonBuilder)
-
registerJsonObjectSerializer
protected void registerJsonObjectSerializer(com.google.gson.GsonBuilder gsonBuilder)
-
registerJsonArraySerializer
protected void registerJsonArraySerializer(com.google.gson.GsonBuilder gsonBuilder)
-
registerDateSerializer
protected void registerDateSerializer(com.google.gson.GsonBuilder gsonBuilder)
-
registerInstantSerializer
protected void registerInstantSerializer(com.google.gson.GsonBuilder gsonBuilder)
-
registerBigDecimalSerializer
protected void registerBigDecimalSerializer(com.google.gson.GsonBuilder gsonBuilder)
-
registerEnumSerializer
protected void registerEnumSerializer(com.google.gson.GsonBuilder gsonBuilder)
-
registerClassSerializer
protected void registerClassSerializer(com.google.gson.GsonBuilder gsonBuilder)
-
registerThrowableSerializer
protected void registerThrowableSerializer(com.google.gson.GsonBuilder gsonBuilder)
-
create
Description copied from interface: JsonManager
Creates an empty JsonObject
- Specified by:
create
in interface JsonManager
-
createArray
Description copied from interface: JsonManager
Creates an empty JsonArray
.
- Specified by:
createArray
in interface JsonManager
-
fromObject
Description copied from interface: JsonManager
Creates a JsonObject
from a random object..
- Specified by:
fromObject
in interface JsonManager
-
fromMap
Description copied from interface: JsonManager
Creates an empty JsonObject
based on the specified Map.
An attempt will be made to create a deep copy of every elements so
a modification won't affect any external references and vice-versa.
The keys will be used as is, not parsed as JsonPaths.
- Specified by:
fromMap
in interface JsonManager
- Returns:
- the
JsonObject
version of the
parameter or null
if the parameter is
null
.
-
fromMap
Description copied from interface: JsonManager
Creates a JsonObject
based on the specified Map.
An attempt will be made to create a deep copy of every elements so
a modification won't affect any external references and vice-versa.
- Specified by:
fromMap
in interface JsonManager
parseKeysAsJsonPaths
- if true
, the keys will
be parsed as JsonPaths
, otherwise they will ne used
as is.
- Returns:
- the
JsonObject
version of the
parameter or null
if the parameter is
null
.
-
fromInputStream
Description copied from interface: JsonManager
Creates a JsonObject
from an inputStream.
- Specified by:
fromInputStream
in interface JsonManager
- Returns:
- the
JsonObject
version of the
parameter or null
if the parameter is
null
.
-
getFromInputStreamEncoding
-
fromFile
Description copied from interface: JsonManager
Creates a JsonObject
from a Json file.
- Specified by:
fromFile
in interface JsonManager
- Returns:
- the deserialized
JsonObject
or null
if the file is
null
or doesn't exist.
-
getFromFileEncoding
-
fromFile
Description copied from interface: JsonManager
Creates a JsonObject
from the path of
a file, on the file system.
- Specified by:
fromFile
in interface JsonManager
- Returns:
- the deserialized
JsonObject
or null
if the file is
null
or doesn't exist.
-
fromClasspathFile
Description copied from interface: JsonManager
Creates a JsonObject
from a classpath
Json file.
- Specified by:
fromClasspathFile
in interface JsonManager
- Returns:
- the deserialized
JsonObject
or null
if the file doesn't exist.
-
getFromClasspathFileEncoding
-
fromStringToMap
Description copied from interface: JsonManager
Creates a Map<String, Object>
from a Json
String.
- Specified by:
fromStringToMap
in interface JsonManager
- Returns:
- the
Map
version of the
parameter or null
if the parameter is
null
.
-
fromInputStreamToMap
Description copied from interface: JsonManager
Creates a Map<String, Object>
from a Json
inputStream.
- Specified by:
fromInputStreamToMap
in interface JsonManager
- Returns:
- the
Map
version of the
parameter or null
if the parameter is
null
.
-
fromString
Description copied from interface: JsonManager
Creates a JsonObject
from a Json
String.
- Specified by:
fromString
in interface JsonManager
- Returns:
- the
JsonObject
version of the
parameter or null
if the parameter is
null
.
-
fromString
Description copied from interface: JsonManager
Creates an instance of the specified T
type
from a Json
String.
- Specified by:
fromString
in interface JsonManager
- Returns:
- the deserialized version of the
parameter or
null
if the parameter is
null
.
-
fromInputStream
Description copied from interface: JsonManager
Creates an instance of the specified T
type
from a Json
inputStream.
- Specified by:
fromInputStream
in interface JsonManager
- Returns:
- the deserialized version of the
parameter or
null
if the parameter is
null
.
-
fromCollectionToJsonArray
Description copied from interface: JsonManager
Creates a JsonArray
from a random collection.
- Specified by:
fromCollectionToJsonArray
in interface JsonManager
-
fromStringArray
Description copied from interface: JsonManager
Creates a JsonArray
from a Json
String.
- Specified by:
fromStringArray
in interface JsonManager
- Returns:
- the
JsonArray
version of the
parameter or null
if the parameter
is null
.
-
fromListArray
Description copied from interface: JsonManager
Creates a JsonArray
from a List
of elements.
- Specified by:
fromListArray
in interface JsonManager
- Returns:
- the
JsonArray
version of the
parameter or null
if the parameter
is null
.
-
fromInputStreamArray
Description copied from interface: JsonManager
Creates a JsonArray
from an inputStream.
- Specified by:
fromInputStreamArray
in interface JsonManager
- Returns:
- the
JsonArray
version of the
parameter or null
if the parameter
is null
.
-
createForm
Description copied from interface: JsonManager
Creates an empty Form
, which is a JsonObject +
a validations container.
- Specified by:
createForm
in interface JsonManager
-
toJsonString
Description copied from interface: JsonManager
Gets the Json
String representation of
the specified object.
- Specified by:
toJsonString
in interface JsonManager
-
toJsonString
Description copied from interface: JsonManager
Gets the Json
String representation of the
specified object.
- Specified by:
toJsonString
in interface JsonManager
pretty
- if true
, the generated
String will be formatted.
-
parseDateFromJson
Description copied from interface: JsonManager
Converts a Json
date (ISO-8601) to a
Java UTC
date.
- Specified by:
parseDateFromJson
in interface JsonManager
-
convertToJsonDate
Description copied from interface: JsonManager
Converts a Date to a Json
date format.
- Specified by:
convertToJsonDate
in interface JsonManager
-
convertToNativeType
Description copied from interface: JsonManager
Convert a random object to a valid native JsonObject type, if
it's not already.
- Specified by:
convertToNativeType
in interface JsonManager
-
convertJsonObjectElementToGsonJsonElement
-
getObjectFromGsonJsonElement
-
clone
Description copied from interface: JsonManager
Tries to clone an object to a JsonObject
or
a JsonArray
, if the object is not of
a primitive type (or BigDecimal
).
The cloning is made by serializing the Object to a
Json string, and deserializing back. So any (de)serialization
rules apply.
The non primitive object will be cloned to a JsonArray
if it is a :
-
JsonArray
-
Collection
-
Array
- Specified by:
clone
in interface JsonManager
-
clone
Description copied from interface: JsonManager
Tries to clone an object to a JsonObject
or
a JsonArray
, if the object is not of
a primitive type (or BigDecimal
).
The cloning is made by serializing the Object to a
Json string, and deserializing back. So any (de)serialization
rules apply.
The non primitive object will be cloned to a JsonArray
if it is a :
-
JsonArray
-
Collection
-
Array
- Specified by:
clone
in interface JsonManager
mutable
- if false
, the resulting
Object and all its potential children
will be immutable.
-
cloneJsonObject
Description copied from interface: JsonManager
Deep copy of the JsonObject
, so any
modification to the original won't affect the
clone, and vice-versa.
Note that if the current object is immutable and
the mutable
parameter is set to false
,
then the current object will be returned as is, since no cloning
is required.
- Specified by:
cloneJsonObject
in interface JsonManager
mutable
- if true
the resulting
array and all its children will be mutable, otherwise
they will all be immutable.
-
cloneJsonArray
Description copied from interface: JsonManager
Deep copy of the JsonArray
, so any
modification to the original won't affect the
clone, and vice-versa.
Note that if the current object is immutable and
the mutable
parameter is set to false
,
then the current array will be returned as is, since no cloning
is required.
- Specified by:
cloneJsonArray
in interface JsonManager
mutable
- if true
the resulting
array and all its children will be mutable, otherwise
they will all be immutable.
-
removeElementAtJsonPath
Description copied from interface: JsonManager
Removes an element at the specified JsonPath
from the
object.
- Specified by:
removeElementAtJsonPath
in interface JsonManager
-
removeElementAtJsonPath
Description copied from interface: JsonManager
Removes an element at the specified JsonPath
from the
array.
- Specified by:
removeElementAtJsonPath
in interface JsonManager
-
isElementExists
Description copied from interface: JsonManager
Does the object contain an element at
the specified JsonPath
(even if
null
)?
- Specified by:
isElementExists
in interface JsonManager
-
isElementExists
Description copied from interface: JsonManager
Does the array contain an element at
the specified JsonPath
(even if
null
)?
- Specified by:
isElementExists
in interface JsonManager
-
enumToFriendlyJsonObject
Description copied from interface: JsonManager
Convert the enum value to a JsonObject
that
has a ".name" property (the name()
of the enum)
and a ".label" property (the toString()
of the
enum)
- Specified by:
enumToFriendlyJsonObject
in interface JsonManager
-
enumsToFriendlyJsonArray
Description copied from interface: JsonManager
Convert the enums to an array of JsonObjects
that
have a ".name" property (the name()
of the enum)
and a ".label" property (the toString()
of the
enum).
- Specified by:
enumsToFriendlyJsonArray
in interface JsonManager
-
getElementAtJsonPath
Description copied from interface: JsonManager
Gets an element from the JsonObject
at the specified JsonPath
.
- Specified by:
getElementAtJsonPath
in interface JsonManager
- Returns:
- the element or
null
if not found.
-
getElementAtJsonPath
Description copied from interface: JsonManager
Gets an element from the JsonObject
at the specified JsonPath
.
- Specified by:
getElementAtJsonPath
in interface JsonManager
- Returns:
- the element or
null
if not found.
-
getElementAtJsonPath
Description copied from interface: JsonManager
Gets an element from the JsonArray
at the
specified JsonPath
.
- Specified by:
getElementAtJsonPath
in interface JsonManager
- Returns:
- the element or
null
if not found.
-
getElementAtJsonPath
Description copied from interface: JsonManager
Gets an element from the JsonArray
at the
specified JsonPath
.
- Specified by:
getElementAtJsonPath
in interface JsonManager
- Returns:
- the element or
null
if not found.
-
putElementAtJsonPath
Description copied from interface: JsonManager
Puts an element in the object at the specified JsonPath
.
All the hierarchy to the end of the JsonPath
is created if required.
- Specified by:
putElementAtJsonPath
in interface JsonManager
-
putElementAtJsonPath
public void putElementAtJsonPath(JsonObjectOrArray objOrArray,
String jsonPath,
Object value,
boolean clone)
Description copied from interface: JsonManager
Puts a clone of the element in the object at the
specified JsonPath
.
All the hierarchy to the end of the JsonPath
is created if required.
- Specified by:
putElementAtJsonPath
in interface JsonManager
-
getMaxNumberOfKeysWhenConvertingMapToJsonObject
protected int getMaxNumberOfKeysWhenConvertingMapToJsonObject()
-
injectDependencies
Once the deserialization of an Object is done,
we inject dependencies using Guice.