Module org.eclipse.yasson
Class AbstractContainerSerializer<T>
- java.lang.Object
-
- org.eclipse.yasson.internal.serializer.AbstractItem<T>
-
- org.eclipse.yasson.internal.serializer.AbstractContainerSerializer<T>
-
- Type Parameters:
T- container value type
- All Implemented Interfaces:
jakarta.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 jakarta.json.bind.serializer.JsonbSerializer<T>
Base class for container serializers (list, array, etc.).
-
-
Constructor Summary
Constructors Modifier Constructor Description AbstractContainerSerializer(CurrentItem<?> wrapper, Type runtimeType, ClassModel classModel)Creates a new instance.protectedAbstractContainerSerializer(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 voidaddValueSerializer(jakarta.json.bind.serializer.JsonbSerializer<?> valueSerializer, Class<?> valueClass)Cache a serializer and serialized object class for next use.protected voidbeforeSerialize(T obj)Process container before serialization begins.protected jakarta.json.bind.serializer.JsonbSerializer<?>getValueSerializer(Class<?> valueClass)Return last used serializer if last value class matches.protected TypegetValueType(Type valueType)Value type of the container.voidserialize(T obj, jakarta.json.stream.JsonGenerator generator, jakarta.json.bind.serializer.SerializationContext ctx)protected abstract voidserializeInternal(T obj, jakarta.json.stream.JsonGenerator generator, jakarta.json.bind.serializer.SerializationContext ctx)Serialize content of provided container.protected voidserializeItem(Object item, jakarta.json.stream.JsonGenerator generator, jakarta.json.bind.serializer.SerializationContext ctx)Serializes container object.protected <X> voidserializerCaptor(jakarta.json.bind.serializer.JsonbSerializer<?> serializer, X object, jakarta.json.stream.JsonGenerator generator, jakarta.json.bind.serializer.SerializationContext ctx)Serializes container object item.protected voidwriteEnd(jakarta.json.stream.JsonGenerator generator)Writes end of an object or an array.protected abstract voidwriteStart(jakarta.json.stream.JsonGenerator generator)Write start of an object or an array without a key.protected abstract voidwriteStart(String key, jakarta.json.stream.JsonGenerator generator)Write start of an object or an array with 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-SerializerBuilderused 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
-
beforeSerialize
protected void beforeSerialize(T obj)
Process container before serialization begins. Does nothing by default.- Parameters:
obj- item to be serialized
-
writeStart
protected abstract void writeStart(jakarta.json.stream.JsonGenerator generator)
Write start of an object or an array without a key.- Parameters:
generator- JSON format generator
-
writeStart
protected abstract void writeStart(String key, jakarta.json.stream.JsonGenerator generator)
Write start of an object or an array with a key.- Parameters:
key- JSON key name.generator- JSON format generator
-
writeEnd
protected void writeEnd(jakarta.json.stream.JsonGenerator generator)
Writes end of an object or an array.- Parameters:
generator- JSON format generator
-
serializeInternal
protected abstract void serializeInternal(T obj, jakarta.json.stream.JsonGenerator generator, jakarta.json.bind.serializer.SerializationContext ctx)
Serialize content of provided container.- Parameters:
obj- container to be serializedgenerator- JSON format generatorctx- JSON serialization context
-
serialize
public final void serialize(T obj, jakarta.json.stream.JsonGenerator generator, jakarta.json.bind.serializer.SerializationContext ctx)
- Specified by:
serializein interfacejakarta.json.bind.serializer.JsonbSerializer<T>
-
serializerCaptor
protected <X> void serializerCaptor(jakarta.json.bind.serializer.JsonbSerializer<?> serializer, X object, jakarta.json.stream.JsonGenerator generator, jakarta.json.bind.serializer.SerializationContext ctx)Serializes container object item.- Type Parameters:
X- type of object- Parameters:
serializer- serializer of the objectobject- object to serializegenerator- json generatorctx- context
-
getValueSerializer
protected jakarta.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(jakarta.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, jakarta.json.stream.JsonGenerator generator, jakarta.json.bind.serializer.SerializationContext ctx)
Serializes container object.- Parameters:
item- containergenerator- json generatorctx- context
-
-