Package com.xebialabs.xlrelease.serialization.json.jackson

# Class JavaObjectDeserializer

java.lang.Object
tools.jackson.databind.ValueDeserializer<Object>
com.xebialabs.xlrelease.serialization.json.jackson.JavaObjectDeserializer

All Implemented Interfaces:
  `tools.jackson.databind.deser.NullValueProvider`

public class JavaObjectDeserializer extends tools.jackson.databind.ValueDeserializer<Object>
Annotation-friendly deserializer that binds JSON content to Java collections.

Jackson 3 removed the no-arg constructor from `UntypedObjectDeserializer`, so it can no longer be referenced directly via `@JsonDeserialize(contentUsing = ...)`. This wrapper provides the required no-arg constructor and delegates to `UntypedObjectDeserializer`. The delegate is constructed with `null` list/map types, matching Jackson 2's no-arg constructor: nested JSON objects and arrays are bound to `LinkedHashMap` and `ArrayList` via the deserializer's own logic, without registering custom collection deserializers that `DefaultScalaModule` would override.

Required when `DefaultScalaModule` is registered: without this, nested map values are deserialized as Scala collections (e.g. `Map1`), which the XL type system cannot store into `MAP_STRING_STRING` and similar Java-only property types.

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class tools.jackson.databind.ValueDeserializer

  `tools.jackson.databind.ValueDeserializer.None`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `JavaObjectDeserializer()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `tools.jackson.databind.ValueDeserializer<?>`
  `createContextual(tools.jackson.databind.DeserializationContext ctxt, tools.jackson.databind.BeanProperty property)`
  `Object`
  `deserialize(tools.jackson.core.JsonParser parser, tools.jackson.databind.DeserializationContext context)`
  `Object`
  `deserialize(tools.jackson.core.JsonParser parser, tools.jackson.databind.DeserializationContext context, Object intoValue)`
  `Object`
  `deserializeWithType(tools.jackson.core.JsonParser parser, tools.jackson.databind.DeserializationContext context, tools.jackson.databind.jsontype.TypeDeserializer typeDeserializer)`
  `Object`
  `getAbsentValue(tools.jackson.databind.DeserializationContext ctxt)`
  `tools.jackson.databind.ValueDeserializer<?>`
  `getDelegatee()`
  `Object`
  `getEmptyValue(tools.jackson.databind.DeserializationContext ctxt)`
  `Object`
  `getNullValue(tools.jackson.databind.DeserializationContext ctxt)`
  `Class<?>`
  `handledType()`
  `boolean`
  `isCachable()`
  `tools.jackson.databind.type.LogicalType`
  `logicalType()`
  `void`
  `resolve(tools.jackson.databind.DeserializationContext ctxt)`
  `Boolean`
  `supportsUpdate(tools.jackson.databind.DeserializationConfig config)`
  `tools.jackson.databind.ValueDeserializer<Object>`
  `unwrappingDeserializer(tools.jackson.databind.DeserializationContext ctxt, tools.jackson.databind.util.NameTransformer transformer)`

  ### Methods inherited from class tools.jackson.databind.ValueDeserializer

  `deserializeWithType, findBackReference, getEmptyAccessPattern, getKnownPropertyNames, getNullAccessPattern, getObjectIdReader, replaceDelegatee`

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

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

- ## Constructor Details

  - ### JavaObjectDeserializer

    public JavaObjectDeserializer()

- ## Method Details

  - ### resolve

    public void resolve(tools.jackson.databind.DeserializationContext ctxt)
    Overrides:
      `resolve` in class `tools.jackson.databind.ValueDeserializer<Object>`

  - ### createContextual

    public tools.jackson.databind.ValueDeserializer<?> createContextual(tools.jackson.databind.DeserializationContext ctxt, tools.jackson.databind.BeanProperty property)
    Overrides:
      `createContextual` in class `tools.jackson.databind.ValueDeserializer<Object>`

  - ### deserialize

    public Object deserialize(tools.jackson.core.JsonParser parser, tools.jackson.databind.DeserializationContext context)
    Specified by:
      `deserialize` in class `tools.jackson.databind.ValueDeserializer<Object>`

  - ### deserialize

    public Object deserialize(tools.jackson.core.JsonParser parser, tools.jackson.databind.DeserializationContext context, Object intoValue)
    Overrides:
      `deserialize` in class `tools.jackson.databind.ValueDeserializer<Object>`

  - ### deserializeWithType

    public Object deserializeWithType(tools.jackson.core.JsonParser parser, tools.jackson.databind.DeserializationContext context, tools.jackson.databind.jsontype.TypeDeserializer typeDeserializer)
    Overrides:
      `deserializeWithType` in class `tools.jackson.databind.ValueDeserializer<Object>`

  - ### logicalType

    public tools.jackson.databind.type.LogicalType logicalType()
    Overrides:
      `logicalType` in class `tools.jackson.databind.ValueDeserializer<Object>`

  - ### isCachable

    public boolean isCachable()
    Overrides:
      `isCachable` in class `tools.jackson.databind.ValueDeserializer<Object>`

  - ### supportsUpdate

    public Boolean supportsUpdate(tools.jackson.databind.DeserializationConfig config)
    Overrides:
      `supportsUpdate` in class `tools.jackson.databind.ValueDeserializer<Object>`

  - ### handledType

    public Class<?> handledType()
    Overrides:
      `handledType` in class `tools.jackson.databind.ValueDeserializer<Object>`

  - ### getNullValue

    public Object getNullValue(tools.jackson.databind.DeserializationContext ctxt)
    Specified by:
      `getNullValue` in interface `tools.jackson.databind.deser.NullValueProvider`
    Overrides:
      `getNullValue` in class `tools.jackson.databind.ValueDeserializer<Object>`

  - ### getAbsentValue

    public Object getAbsentValue(tools.jackson.databind.DeserializationContext ctxt)
    Specified by:
      `getAbsentValue` in interface `tools.jackson.databind.deser.NullValueProvider`
    Overrides:
      `getAbsentValue` in class `tools.jackson.databind.ValueDeserializer<Object>`

  - ### getEmptyValue

    public Object getEmptyValue(tools.jackson.databind.DeserializationContext ctxt)
    Overrides:
      `getEmptyValue` in class `tools.jackson.databind.ValueDeserializer<Object>`

  - ### unwrappingDeserializer

    public tools.jackson.databind.ValueDeserializer<Object> unwrappingDeserializer(tools.jackson.databind.DeserializationContext ctxt, tools.jackson.databind.util.NameTransformer transformer)
    Overrides:
      `unwrappingDeserializer` in class `tools.jackson.databind.ValueDeserializer<Object>`

  - ### getDelegatee

    public tools.jackson.databind.ValueDeserializer<?> getDelegatee()
    Overrides:
      `getDelegatee` in class `tools.jackson.databind.ValueDeserializer<Object>`