Class AbstractContainerSerializer<T>

    • 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 interface javax.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 - serializer
        valueClass - class of serializer object
      • serializeItem

        protected void serializeItem​(Object item,
                                     javax.json.stream.JsonGenerator generator,
                                     javax.json.bind.serializer.SerializationContext ctx)
      • getValueType

        protected Type getValueType​(Type valueType)