## 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
`protected JsonSerializer<Object>` `_serializer`
`protected TypeSerializer` `_typeSerializer`

Constructor Summary
`TypeWrappedSerializer(TypeSerializer typeSer, JsonSerializer<?> ser)`

Method Summary
`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>`

Copyright © 2012 FasterXML. All Rights Reserved.