Class EntitySerializationImpl
- All Implemented Interfaces:
EntitySerialization
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected class
protected class
protected class
protected static class
Class is used for storing a collection of entities already processed during the serialization.protected class
-
Field Summary
Modifier and TypeFieldDescriptionprotected AccessManager
protected CoreProperties
protected DatatypeRegistry
protected EntityStates
protected Metadata
protected MetadataTools
protected EntitySerializationTokenManager
Fields inherited from interface io.jmix.core.EntitySerialization
ENTITY_NAME_PROP, INSTANCE_NAME_PROP
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected com.google.gson.Gson
createGsonForDeserialization
(MetaClass metaClass, EntitySerializationOption... options) protected com.google.gson.Gson
createGsonForSerialization
(FetchPlan fetchPlan, EntitySerializationOption... options) <T> Collection<T>
entitiesCollectionFromJson
(String json, MetaClass metaClass, EntitySerializationOption... options) Deserializes a JSON array of objects to entities collection<T> T
entityFromJson
(String json, MetaClass metaClass, EntitySerializationOption... options) Deserializes a JSON object to the entity.protected Field
protected void
makeFieldAccessible
(Field field) <T> T
objectFromJson
(String json, Type type, EntitySerializationOption... options) Deserializes an object of any class from JSON.objectToJson
(Object object, EntitySerializationOption... options) Serializes any custom POJO or collection of POJOs or JSON.An overloaded version of theEntitySerialization.toJson(Object, FetchPlan, EntitySerializationOption...)
method with a nullfetchPlan
parameter and with no serialization options.toJson
(Object entity, FetchPlan fetchPlan, EntitySerializationOption... options) Serializes a single entity to the JSON object graph.toJson
(Collection<?> entities) An overloaded version of theEntitySerialization.toJson(Collection, FetchPlan, EntitySerializationOption...)
method with a nullfetchPlan
parameter and with no serialization options.toJson
(Collection<?> entities, FetchPlan fetchPlan, EntitySerializationOption... options) Serializes a collection of entities to the JSON array.
-
Field Details
-
metadataTools
-
metadata
-
accessManager
-
entityStates
-
datatypeRegistry
-
tokenManager
-
coreProperties
-
extensionResolver
-
context
-
-
Constructor Details
-
EntitySerializationImpl
public EntitySerializationImpl()
-
-
Method Details
-
toJson
Description copied from interface:EntitySerialization
An overloaded version of theEntitySerialization.toJson(Object, FetchPlan, EntitySerializationOption...)
method with a nullfetchPlan
parameter and with no serialization options.- Specified by:
toJson
in interfaceEntitySerialization
- Parameters:
entity
- an entity to be serialized- Returns:
- a string that represents a JSON object
-
toJson
public String toJson(Object entity, @Nullable FetchPlan fetchPlan, EntitySerializationOption... options) Description copied from interface:EntitySerialization
Serializes a single entity to the JSON object graph.If the
fetchPlan
parameter is null then all loaded entity properties will be presented in JSON, otherwise only loaded properties that are in the fetchPlan will be in the JSON object.The
options
parameter specify some additional options for the serialization process. For example, repeated entities may be replaced with the object with the only "id" property, making the result JSON more compact. SeeEntitySerializationOption
for details.Additionally, an "_entityName" property is added to the JSON objects that represent an entity.
- Specified by:
toJson
in interfaceEntitySerialization
- Parameters:
entity
- an entity to be serializedfetchPlan
- a fetch plan that defines which entity properties should be added to the result JSON objectoptions
- options specifying how an entity should be serialized- Returns:
- a string that represents a JSON object
-
toJson
Description copied from interface:EntitySerialization
An overloaded version of theEntitySerialization.toJson(Collection, FetchPlan, EntitySerializationOption...)
method with a nullfetchPlan
parameter and with no serialization options.- Specified by:
toJson
in interfaceEntitySerialization
- Parameters:
entities
- a collection of entities to be serialized- Returns:
- a string that represent a JSON array which contains entity objects
-
toJson
public String toJson(Collection<?> entities, @Nullable FetchPlan fetchPlan, EntitySerializationOption... options) Description copied from interface:EntitySerialization
Serializes a collection of entities to the JSON array. Method works like theEntitySerialization.toJson(Object, FetchPlan, EntitySerializationOption...)
, but return a JSON array as a result.- Specified by:
toJson
in interfaceEntitySerialization
- Parameters:
entities
- a list of entities to be serializedfetchPlan
- a fetch plan that defines which entity properties should be added to the result JSON objectoptions
- options specifying how an entity should be serialized- Returns:
- a string that represents a JSON array of objects.
-
objectToJson
Description copied from interface:EntitySerialization
Serializes any custom POJO or collection of POJOs or JSON. If some field in POJO is an entity then this field will be serialized according to entity serialization rules. Date fields are serialized according to the format of theDateTimeDatatype
.- Specified by:
objectToJson
in interfaceEntitySerialization
- Parameters:
object
- any POJO or collection of POJOsoptions
- options specifying how a JSON object graph for fields with type 'Entity' will be serialized- Returns:
- a string that represents a JSON object or JSON array
-
entityFromJson
public <T> T entityFromJson(String json, @Nullable MetaClass metaClass, EntitySerializationOption... options) Description copied from interface:EntitySerialization
Deserializes a JSON object to the entity.The
metaClass
parameter defines a result entity metaClass. It is optional. It must be defined if the JSON object doesn't contain an "_entityName" property.An entity may be serialized to the JSON in slightly different formats. The format is defined by the
options
parameter. SeeEntitySerializationOption
for details.- Specified by:
entityFromJson
in interfaceEntitySerialization
- Parameters:
json
- a string that represents a JSON objectmetaClass
- a metaClass of the entity that will be createdoptions
- options specifying how a JSON object graph was serialized- Returns:
- an entity
-
entitiesCollectionFromJson
public <T> Collection<T> entitiesCollectionFromJson(String json, @Nullable MetaClass metaClass, EntitySerializationOption... options) Description copied from interface:EntitySerialization
Deserializes a JSON array of objects to entities collection- Specified by:
entitiesCollectionFromJson
in interfaceEntitySerialization
- Parameters:
json
- a string that represents a JSON array of objectsmetaClass
- a metaClass of the entities that will be createdoptions
- options specifying how a JSON object graph was serialized- Returns:
- an entities collection
-
objectFromJson
Description copied from interface:EntitySerialization
Deserializes an object of any class from JSON. Date fields are deserialized according to theDateTimeDatatype
format, entities object and fields of Entity type are deserialized like in theEntitySerialization.entityFromJson(String, MetaClass, EntitySerializationOption...)
method- Specified by:
objectFromJson
in interfaceEntitySerialization
- Parameters:
json
- a string that represents an objecttype
- type of the objectoptions
- options specifying how a JSON object graph was serialized- Returns:
- deserialized object
-
createGsonForSerialization
protected com.google.gson.Gson createGsonForSerialization(@Nullable FetchPlan fetchPlan, EntitySerializationOption... options) -
createGsonForDeserialization
protected com.google.gson.Gson createGsonForDeserialization(@Nullable MetaClass metaClass, EntitySerializationOption... options) -
getField
-
makeFieldAccessible
-