com.fasterxml.jackson.databind.ser.impl

## Class TypeWrappedSerializer

- java.lang.Object
- - com.fasterxml.jackson.databind.JsonSerializer<Object>
  - - com.fasterxml.jackson.databind.ser.impl.TypeWrappedSerializer

All Implemented Interfaces:
  JsonFormatVisitable

    public final class TypeWrappedSerializer
    extends JsonSerializer<Object>

Simple serializer that will call configured type serializer, passing in configured data serializer, and exposing it all as a simple serializer.

### Nested Class Summary

### Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.JsonSerializer

`JsonSerializer.None`

### Field Summary

Fields
`protected JsonSerializer<Object>` `_serializer`
`protected TypeSerializer` `_typeSerializer`

### Constructor Summary

Constructors
Constructor and Description
`TypeWrappedSerializer(TypeSerializer typeSer, JsonSerializer<?> ser)`

### Method Summary

Methods
`Class<Object>` `handledType()` Method for accessing type of Objects this serializer can handle.
`void` `serialize(Object value, JsonGenerator jgen, SerializerProvider provider)` Method that can be called to ask implementation to serialize values of type this serializer handles.
`void` `serializeWithType(Object value, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)` Method that can be called to ask implementation to serialize values of type this serializer handles, using specified type serializer for embedding necessary type information.

### Methods inherited from class com.fasterxml.jackson.databind.JsonSerializer

`acceptJsonFormatVisitor, getDelegatee, isEmpty, isUnwrappingSerializer, replaceDelegatee, unwrappingSerializer, usesObjectId`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### _typeSerializer

    protected final TypeSerializer _typeSerializer

#### _serializer

    protected final JsonSerializer<Object> _serializer

### Constructor Detail

#### TypeWrappedSerializer

    public TypeWrappedSerializer(TypeSerializer typeSer,
                         JsonSerializer<?> ser)

### Method Detail

#### serialize

    public void serialize(Object value,
                 JsonGenerator jgen,
                 SerializerProvider provider)
                   throws IOException,
                          JsonProcessingException

Description copied from class: `JsonSerializer`
Method that can be called to ask implementation to serialize values of type this serializer handles.

Specified by:
  `serialize` in class `JsonSerializer<Object>`
Parameters:
  `value` - Value to serialize; can not be null.
  `jgen` - Generator used to output resulting Json content
  `provider` - Provider that can be used to get serializers for serializing Objects value contains, if any.
Throws:
  `IOException`
  `JsonProcessingException`

#### serializeWithType

    public void serializeWithType(Object value,
                         JsonGenerator jgen,
                         SerializerProvider provider,
                         TypeSerializer typeSer)
                           throws IOException,
                                  JsonProcessingException

Description copied from class: `JsonSerializer`
Method that can be called to ask implementation to serialize values of type this serializer handles, using specified type serializer for embedding necessary type information.

Default implementation will throw `UnsupportedOperationException` to indicate that proper type handling needs to be implemented.

For simple datatypes written as a single scalar value (JSON String, Number, Boolean), implementation would look like:

      // note: method to call depends on whether this type is serialized as JSON scalar, object or Array!
      typeSer.writeTypePrefixForScalar(value, jgen);
      serialize(value, jgen, provider);
      typeSer.writeTypeSuffixForScalar(value, jgen);

and implementations for type serialized as JSON Arrays or Objects would differ slightly, as `START-ARRAY>/`END-ARRAY` and `START-OBJECT>/`END-OBJECT` pairs need to be properly handled with respect to serializing of contents.``

Overrides:
  `serializeWithType` in class `JsonSerializer<Object>`
Parameters:
  `value` - Value to serialize; can not be null.
  `jgen` - Generator used to output resulting Json content
  `provider` - Provider that can be used to get serializers for serializing Objects value contains, if any.
  `typeSer` - Type serializer to use for including type information
Throws:
  `IOException`
  `JsonProcessingException`

#### handledType

    public Class<Object> handledType()

Description copied from class: `JsonSerializer`
Method for accessing type of Objects this serializer can handle. Note that this information is not guaranteed to be exact -- it may be a more generic (super-type) -- but it should not be incorrect (return a non-related type).

Default implementation will return null, which essentially means same as returning `Object.class` would; that is, that nothing is known about handled type.

Overrides:
  `handledType` in class `JsonSerializer<Object>`