@Component(value="core_EntitySerialization") public class EntitySerializationImpl extends java.lang.Object implements EntitySerialization
Modifier and Type | Class and Description |
---|---|
protected class |
EntitySerializationImpl.DateDeserializer |
protected class |
EntitySerializationImpl.DateSerializer |
protected class |
EntitySerializationImpl.EntityDeserializer |
protected static class |
EntitySerializationImpl.EntitySerializationContext
Class is used for storing a collection of entities already processed during the serialization.
|
protected class |
EntitySerializationImpl.EntitySerializer |
Modifier and Type | Field and Description |
---|---|
protected AccessManager |
accessManager |
protected java.lang.ThreadLocal<EntitySerializationImpl.EntitySerializationContext> |
context |
protected CoreProperties |
coreProperties |
protected DatatypeRegistry |
datatypeRegistry |
protected EntityStates |
entityStates |
protected Metadata |
metadata |
protected MetadataTools |
metadataTools |
protected EntitySerializationTokenManager |
tokenManager |
ENTITY_NAME_PROP, INSTANCE_NAME_PROP
Constructor and Description |
---|
EntitySerializationImpl() |
Modifier and Type | Method and Description |
---|---|
protected com.google.gson.Gson |
createGsonForDeserialization(MetaClass metaClass,
EntitySerializationOption... options) |
protected com.google.gson.Gson |
createGsonForSerialization(FetchPlan fetchPlan,
EntitySerializationOption... options) |
<T> java.util.Collection<T> |
entitiesCollectionFromJson(java.lang.String json,
MetaClass metaClass,
EntitySerializationOption... options)
Deserializes a JSON array of objects to entities collection
|
<T> T |
entityFromJson(java.lang.String json,
MetaClass metaClass,
EntitySerializationOption... options)
Deserializes a JSON object to the entity.
|
protected java.lang.reflect.Field |
getField(java.lang.Class clazz,
java.lang.String fieldName) |
protected void |
makeFieldAccessible(java.lang.reflect.Field field) |
<T> T |
objectFromJson(java.lang.String json,
java.lang.reflect.Type type,
EntitySerializationOption... options)
Deserializes an object of any class from JSON.
|
java.lang.String |
objectToJson(java.lang.Object object,
EntitySerializationOption... options)
Serializes any custom POJO or collection of POJOs or JSON.
|
java.lang.String |
toJson(java.util.Collection<?> entities)
An overloaded version of the
EntitySerialization.toJson(Collection, FetchPlan, EntitySerializationOption...) method with a null
fetchPlan parameter and with no serialization options. |
java.lang.String |
toJson(java.util.Collection<?> entities,
FetchPlan fetchPlan,
EntitySerializationOption... options)
Serializes a collection of entities to the JSON array.
|
java.lang.String |
toJson(java.lang.Object entity)
An overloaded version of the
EntitySerialization.toJson(Object, FetchPlan, EntitySerializationOption...) method with a null
fetchPlan parameter and with no serialization options. |
java.lang.String |
toJson(java.lang.Object entity,
FetchPlan fetchPlan,
EntitySerializationOption... options)
Serializes a single entity to the JSON object graph.
|
@Autowired protected MetadataTools metadataTools
@Autowired protected Metadata metadata
@Autowired protected AccessManager accessManager
@Autowired protected EntityStates entityStates
@Autowired protected DatatypeRegistry datatypeRegistry
@Autowired protected EntitySerializationTokenManager tokenManager
@Autowired protected CoreProperties coreProperties
protected java.lang.ThreadLocal<EntitySerializationImpl.EntitySerializationContext> context
public java.lang.String toJson(java.lang.Object entity)
EntitySerialization
EntitySerialization.toJson(Object, FetchPlan, EntitySerializationOption...)
method with a null
fetchPlan
parameter and with no serialization options.toJson
in interface EntitySerialization
entity
- an entity to be serializedpublic java.lang.String toJson(java.lang.Object entity, @Nullable FetchPlan fetchPlan, EntitySerializationOption... options)
EntitySerialization
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. See EntitySerializationOption
for details.
Additionally, an "_entityName" property is added to the JSON objects that represent an entity.
toJson
in interface EntitySerialization
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 serializedpublic java.lang.String toJson(java.util.Collection<?> entities)
EntitySerialization
EntitySerialization.toJson(Collection, FetchPlan, EntitySerializationOption...)
method with a null
fetchPlan
parameter and with no serialization options.toJson
in interface EntitySerialization
entities
- a collection of entities to be serializedpublic java.lang.String toJson(java.util.Collection<?> entities, @Nullable FetchPlan fetchPlan, EntitySerializationOption... options)
EntitySerialization
EntitySerialization.toJson(Object, FetchPlan,
EntitySerializationOption...)
, but return a JSON array as a result.toJson
in interface EntitySerialization
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 serializedpublic java.lang.String objectToJson(java.lang.Object object, EntitySerializationOption... options)
EntitySerialization
DateTimeDatatype
.objectToJson
in interface EntitySerialization
object
- any POJO or collection of POJOsoptions
- options specifying how a JSON object graph for fields with type 'Entity' will be serializedpublic <T> T entityFromJson(java.lang.String json, @Nullable MetaClass metaClass, EntitySerializationOption... options)
EntitySerialization
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. See EntitySerializationOption
for details.
entityFromJson
in interface EntitySerialization
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 serializedpublic <T> java.util.Collection<T> entitiesCollectionFromJson(java.lang.String json, @Nullable MetaClass metaClass, EntitySerializationOption... options)
EntitySerialization
entitiesCollectionFromJson
in interface EntitySerialization
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 serializedpublic <T> T objectFromJson(java.lang.String json, java.lang.reflect.Type type, EntitySerializationOption... options)
EntitySerialization
DateTimeDatatype
format, entities object and fields of Entity type are
deserialized like in the EntitySerialization.entityFromJson(String, MetaClass, EntitySerializationOption...)
methodobjectFromJson
in interface EntitySerialization
json
- a string that represents an objecttype
- type of the objectoptions
- options specifying how a JSON object graph was serializedprotected com.google.gson.Gson createGsonForSerialization(@Nullable FetchPlan fetchPlan, EntitySerializationOption... options)
protected com.google.gson.Gson createGsonForDeserialization(@Nullable MetaClass metaClass, EntitySerializationOption... options)
@Nullable protected java.lang.reflect.Field getField(@Nullable java.lang.Class clazz, java.lang.String fieldName)
protected void makeFieldAccessible(java.lang.reflect.Field field)