com.fasterxml.jackson.databind.deser.std

## Class ArrayBlockingQueueDeserializer

- java.lang.Object
- - com.fasterxml.jackson.databind.JsonDeserializer<T>
  - - com.fasterxml.jackson.databind.deser.std.StdDeserializer<T>
    - - com.fasterxml.jackson.databind.deser.std.ContainerDeserializerBase<Collection<Object>>
      - - com.fasterxml.jackson.databind.deser.std.CollectionDeserializer
        - - com.fasterxml.jackson.databind.deser.std.ArrayBlockingQueueDeserializer

All Implemented Interfaces:
  ContextualDeserializer, NullValueProvider, ValueInstantiator.Gettable, Serializable

    public class ArrayBlockingQueueDeserializer
    extends CollectionDeserializer

We need a custom deserializer both because `ArrayBlockingQueue` has no default constructor AND because it has size limit used for constructing underlying storage automatically.

See Also:
  Serialized Form

### Nested Class Summary

### Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.deser.std.CollectionDeserializer

`CollectionDeserializer.CollectionReferringAccumulator`

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

`JsonDeserializer.None`

### Field Summary

### Fields inherited from class com.fasterxml.jackson.databind.deser.std.CollectionDeserializer

`_delegateDeserializer, _valueDeserializer, _valueInstantiator, _valueTypeDeserializer`

### Fields inherited from class com.fasterxml.jackson.databind.deser.std.ContainerDeserializerBase

`_containerType, _nullProvider, _skipNullValues, _unwrapSingle`

### Fields inherited from class com.fasterxml.jackson.databind.deser.std.StdDeserializer

`_valueClass, F_MASK_ACCEPT_ARRAYS, F_MASK_INT_COERCIONS`

### Constructor Summary

Constructors
`protected` `ArrayBlockingQueueDeserializer(ArrayBlockingQueueDeserializer src)` Copy-constructor that can be used by sub-classes to allow copy-on-write styling copying of settings of an existing instance.
`` `ArrayBlockingQueueDeserializer(JavaType containerType, JsonDeserializer<Object> valueDeser, TypeDeserializer valueTypeDeser, ValueInstantiator valueInstantiator)`
`protected` `ArrayBlockingQueueDeserializer(JavaType containerType, JsonDeserializer<Object> valueDeser, TypeDeserializer valueTypeDeser, ValueInstantiator valueInstantiator, JsonDeserializer<Object> delegateDeser, NullValueProvider nuller, Boolean unwrapSingle)` Constructor used when creating contextualized instances.

### Method Summary

Methods
`protected Collection<Object>` `createDefaultInstance(DeserializationContext ctxt)`
`Collection<Object>` `deserialize(JsonParser p, DeserializationContext ctxt, Collection<Object> result0)` Alternate deserialization method (compared to the most commonly used, `JsonDeserializer.deserialize(JsonParser, DeserializationContext)`), which takes in initialized value instance, to be configured and/or populated by deserializer.
`Object` `deserializeWithType(JsonParser p, DeserializationContext ctxt, TypeDeserializer typeDeserializer)` Base implementation that does not assume specific type inclusion mechanism.
`protected ArrayBlockingQueueDeserializer` `withResolved(JsonDeserializer<?> dd, JsonDeserializer<?> vd, TypeDeserializer vtd, NullValueProvider nuller, Boolean unwrapSingle)` Fluent-factory method call to construct contextual instance.

### Methods inherited from class com.fasterxml.jackson.databind.deser.std.CollectionDeserializer

`createContextual, deserialize, getContentDeserializer, getValueInstantiator, handleNonArray, isCachable`

### Methods inherited from class com.fasterxml.jackson.databind.deser.std.ContainerDeserializerBase

`findBackReference, getContentType, getEmptyAccessPattern, getEmptyValue, getValueType, supportsUpdate, wrapAndThrow`

### Methods inherited from class com.fasterxml.jackson.databind.deser.std.StdDeserializer

`_byteOverflow, _coercedTypeDesc, _coerceEmptyString, _coerceIntegral, _coerceNullToken, _coerceTextualNull, _deserializeFromArray, _deserializeFromEmpty, _deserializeWrappedValue, _failDoubleToIntCoercion, _findNullProvider, _hasTextualNull, _intOverflow, _isEmptyOrTextualNull, _isIntNumber, _isNaN, _isNegInf, _isPosInf, _neitherNull, _nonNullNumber, _parseBooleanFromInt, _parseBooleanPrimitive, _parseBytePrimitive, _parseDate, _parseDate, _parseDateFromArray, _parseDoublePrimitive, _parseDoublePrimitive, _parseFloatPrimitive, _parseFloatPrimitive, _parseIntPrimitive, _parseIntPrimitive, _parseLongPrimitive, _parseLongPrimitive, _parseShortPrimitive, _parseString, _reportFailedNullCoerce, _shortOverflow, _verifyEndArrayForSingle, _verifyNullForPrimitive, _verifyNullForPrimitiveCoercion, _verifyNullForScalarCoercion, _verifyNumberForScalarCoercion, _verifyStringForScalarCoercion, findContentNullProvider, findContentNullStyle, findConvertingContentDeserializer, findDeserializer, findFormatFeature, findFormatOverrides, findValueNullProvider, getValueClass, handledType, handleMissingEndArrayForSingle, handleUnknownProperty, isDefaultDeserializer, isDefaultKeyDeserializer, parseDouble`

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

`getDelegatee, getEmptyValue, getKnownPropertyNames, getNullAccessPattern, getNullValue, getNullValue, getObjectIdReader, replaceDelegatee, unwrappingDeserializer`

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

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

### Constructor Detail

#### ArrayBlockingQueueDeserializer

    public ArrayBlockingQueueDeserializer(JavaType containerType,
                                  JsonDeserializer<Object> valueDeser,
                                  TypeDeserializer valueTypeDeser,
                                  ValueInstantiator valueInstantiator)

#### ArrayBlockingQueueDeserializer

    protected ArrayBlockingQueueDeserializer(JavaType containerType,
                                  JsonDeserializer<Object> valueDeser,
                                  TypeDeserializer valueTypeDeser,
                                  ValueInstantiator valueInstantiator,
                                  JsonDeserializer<Object> delegateDeser,
                                  NullValueProvider nuller,
                                  Boolean unwrapSingle)

Constructor used when creating contextualized instances.

#### ArrayBlockingQueueDeserializer

    protected ArrayBlockingQueueDeserializer(ArrayBlockingQueueDeserializer src)

Copy-constructor that can be used by sub-classes to allow copy-on-write styling copying of settings of an existing instance.

### Method Detail

#### withResolved

    protected ArrayBlockingQueueDeserializer withResolved(JsonDeserializer<?> dd,
                                              JsonDeserializer<?> vd,
                                              TypeDeserializer vtd,
                                              NullValueProvider nuller,
                                              Boolean unwrapSingle)

Fluent-factory method call to construct contextual instance.

Overrides:
  `withResolved` in class `CollectionDeserializer`

#### createDefaultInstance

    protected Collection<Object> createDefaultInstance(DeserializationContext ctxt)
                                                throws IOException

Overrides:
  `createDefaultInstance` in class `CollectionDeserializer`
Throws:
  `IOException`

#### deserialize

    public Collection<Object> deserialize(JsonParser p,
                                 DeserializationContext ctxt,
                                 Collection<Object> result0)
                                   throws IOException

Description copied from class: `JsonDeserializer`
Alternate deserialization method (compared to the most commonly used, `JsonDeserializer.deserialize(JsonParser, DeserializationContext)`), which takes in initialized value instance, to be configured and/or populated by deserializer. Method is not necessarily used (or supported) by all types (it will not work for immutable types, for obvious reasons): most commonly it is used for Collections and Maps. It may be used both with "updating readers" (for POJOs) and when Collections and Maps use "getter as setter".

Default implementation just throws `UnsupportedOperationException`, to indicate that types that do not explicitly add support do not necessarily support update-existing-value operation (esp. immutable types)

Overrides:
  `deserialize` in class `CollectionDeserializer`
Throws:
  `IOException`

#### deserializeWithType

    public Object deserializeWithType(JsonParser p,
                             DeserializationContext ctxt,
                             TypeDeserializer typeDeserializer)
                               throws IOException

Description copied from class: `StdDeserializer`
Base implementation that does not assume specific type inclusion mechanism. Sub-classes are expected to override this method if they are to handle type information.

Overrides:
  `deserializeWithType` in class `CollectionDeserializer`
  `typeDeserializer` - Deserializer to use for handling type information
Throws:
  `IOException`