Class AbstractContainerSerializer<T>
- java.lang.Object
-
- org.eclipse.yasson.internal.serializer.AbstractItem<T>
-
- org.eclipse.yasson.internal.serializer.AbstractContainerSerializer<T>
-
- All Implemented Interfaces:
javax.json.bind.serializer.JsonbSerializer<T>
,RuntimeTypeInfo
,CurrentItem<T>
- Direct Known Subclasses:
AbstractArraySerializer
,AbstractJsonpSerializer
,CollectionSerializer
,MapSerializer
,ObjectSerializer
public abstract class AbstractContainerSerializer<T> extends AbstractItem<T> implements javax.json.bind.serializer.JsonbSerializer<T>
Base class for container serializers (list, array, etc.).- Author:
- Roman Grigoriadi
-
-
Constructor Summary
Constructors Modifier Constructor Description AbstractContainerSerializer(CurrentItem<?> wrapper, Type runtimeType, ClassModel classModel)
Creates a new instance.protected
AbstractContainerSerializer(SerializerBuilder builder)
Create instance of current item with its builder.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
addValueSerializer(javax.json.bind.serializer.JsonbSerializer<?> valueSerializer, Class<?> valueClass)
Cache a serializer and serialized object class for next use.protected javax.json.bind.serializer.JsonbSerializer<?>
getValueSerializer(Class<?> valueClass)
Return last used serializer if last value class matches.protected Type
getValueType(Type valueType)
void
serialize(T obj, javax.json.stream.JsonGenerator generator, javax.json.bind.serializer.SerializationContext ctx)
protected abstract void
serializeInternal(T obj, javax.json.stream.JsonGenerator generator, javax.json.bind.serializer.SerializationContext ctx)
protected void
serializeItem(Object item, javax.json.stream.JsonGenerator generator, javax.json.bind.serializer.SerializationContext ctx)
protected <X> void
serializerCaptor(javax.json.bind.serializer.JsonbSerializer<?> serializer, X object, javax.json.stream.JsonGenerator generator, javax.json.bind.serializer.SerializationContext ctx)
protected void
writeEnd(javax.json.stream.JsonGenerator generator)
Writes end for object or array.protected abstract void
writeStart(String key, javax.json.stream.JsonGenerator generator)
Write start object or start array with key.protected abstract void
writeStart(javax.json.stream.JsonGenerator generator)
Write start object or start array without a key.-
Methods inherited from class org.eclipse.yasson.internal.serializer.AbstractItem
getClassModel, getRuntimeType, getWrapper
-
-
-
-
Constructor Detail
-
AbstractContainerSerializer
protected AbstractContainerSerializer(SerializerBuilder builder)
Create instance of current item with its builder.- Parameters:
builder
-SerializerBuilder
used to build this instance
-
AbstractContainerSerializer
public AbstractContainerSerializer(CurrentItem<?> wrapper, Type runtimeType, ClassModel classModel)
Creates a new instance.- Parameters:
wrapper
- Item to serialize.runtimeType
- Runtime type of the item.classModel
- Class model.
-
-
Method Detail
-
serialize
public final void serialize(T obj, javax.json.stream.JsonGenerator generator, javax.json.bind.serializer.SerializationContext ctx)
- Specified by:
serialize
in interfacejavax.json.bind.serializer.JsonbSerializer<T>
-
serializeInternal
protected abstract void serializeInternal(T obj, javax.json.stream.JsonGenerator generator, javax.json.bind.serializer.SerializationContext ctx)
-
writeStart
protected abstract void writeStart(javax.json.stream.JsonGenerator generator)
Write start object or start array without a key.- Parameters:
generator
- JSON generator.
-
writeEnd
protected void writeEnd(javax.json.stream.JsonGenerator generator)
Writes end for object or array.- Parameters:
generator
- JSON generator.
-
writeStart
protected abstract void writeStart(String key, javax.json.stream.JsonGenerator generator)
Write start object or start array with key.- Parameters:
key
- JSON key name.generator
- JSON generator.
-
serializerCaptor
protected <X> void serializerCaptor(javax.json.bind.serializer.JsonbSerializer<?> serializer, X object, javax.json.stream.JsonGenerator generator, javax.json.bind.serializer.SerializationContext ctx)
-
getValueSerializer
protected javax.json.bind.serializer.JsonbSerializer<?> getValueSerializer(Class<?> valueClass)
Return last used serializer if last value class matches.- Parameters:
valueClass
- class of the serialized object- Returns:
- cached serializer or null
-
addValueSerializer
protected void addValueSerializer(javax.json.bind.serializer.JsonbSerializer<?> valueSerializer, Class<?> valueClass)
Cache a serializer and serialized object class for next use.- Parameters:
valueSerializer
- serializervalueClass
- class of serializer object
-
serializeItem
protected void serializeItem(Object item, javax.json.stream.JsonGenerator generator, javax.json.bind.serializer.SerializationContext ctx)
-
-