Note that usage pattern is such that a single "root" instance is kept
by each com. instance; and
an actual per-operation instance must be constructed by calling
perOperationInstance: reason for this is that instances
use simple caching to handle the common case of repeating types
within JSON Arrays.
| Modifier and Type | Field and Description |
|---|---|
| protected final int | _features
Feature flags that are enabled |
| protected Map | _incompleteReaders
During resolution, some readers may be in-progress, but need to be linked: for example, with cyclic type references. |
| private ClassKey | _key
Reusable lookup key; only used by per-thread instances. |
| protected final ConcurrentHashMap | _knownReaders
Set of |
| protected final JSONReader | |
| protected final Object | _readerLock
Object used for mutex during construction of a Bean deserializer: necessary to avoid race conditions during handling of cyclic dependencies. |
| protected final ReaderWriterModifier | _readerModifier
Provider for reader customizer, if any; may be null. |
| protected final ReaderWriterProvider | _readerProvider
Provider for custom readers, if any; may be null. |
| protected final TypeResolver | _typeResolver
For generic containers (Collections, Maps, arrays), we may need this guy. |
| protected static final int | MAX_CACHED_READERS
While we should be able to cache all types in the active working set, we should also avoid potential unbounded retention, since there is often just one big instance per JVM (or at least ClassLoader). |
| Access | Constructor and Description |
|---|---|
| protected | ValueReaderLocator(ReaderWriterProvider rwp, ReaderWriterModifier rwm)
Constructor for the blueprint instance |
| protected | |
| protected |
| Modifier and Type | Method and Description |
|---|---|
| private TypeBindings | |
| protected ValueReader | |
| protected POJODefinition | |
| protected BeanReader | |
| protected ValueReader | |
| protected ValueReader | |
| public static final ValueReaderLocator | |
| protected ValueReader | |
| protected ValueReader | |
| protected ValueReader | createReader(Class<?>
Context for resolving generic type parameters contextType, Class<?> Type-erased type of value to construct reader for type, Type Full (possibly) generic type of value to construct reader for (important
for genericType)java., java.).Factory method for creating standard readers of any declared type. |
| protected ValueReader | |
| public ValueReader | Returns: ValueReader to use for given typeType-erased type of value to find reader for raw)Method used during deserialization to find handler for given non-generic type: will first check for already resolved (and cached) readers -- and return if one found -- and then if no cached reader found, create one, cache, return. |
| protected ValueReader | |
| protected ValueReader | |
| public ValueReaderLocator | |
| public ReaderWriterModifier | |
| public ReaderWriterProvider | |
| public ValueReaderLocator | |
| public ValueReaderLocator |
| _features | back to summary |
|---|---|
| protected final int _features Feature flags that are enabled | |
| _incompleteReaders | back to summary |
|---|---|
| protected Map<ClassKey, ValueReader> _incompleteReaders During resolution, some readers may be in-progress, but need to be linked: for example, with cyclic type references. | |
| _key | back to summary |
|---|---|
| private ClassKey _key Reusable lookup key; only used by per-thread instances. | |
| _knownReaders | back to summary |
|---|---|
| protected final ConcurrentHashMap<ClassKey, ValueReader> _knownReaders Set of | |
| _readContext | back to summary |
|---|---|
| protected final JSONReader _readContext | |
| _readerLock | back to summary |
|---|---|
| protected final Object _readerLock Object used for mutex during construction of a Bean deserializer: necessary to avoid race conditions during handling of cyclic dependencies. | |
| _readerModifier | back to summary |
|---|---|
| protected final ReaderWriterModifier _readerModifier Provider for reader customizer, if any; may be null.
| |
| _readerProvider | back to summary |
|---|---|
| protected final ReaderWriterProvider _readerProvider Provider for custom readers, if any; may be null.
| |
| _typeResolver | back to summary |
|---|---|
| protected final TypeResolver _typeResolver For generic containers (Collections, Maps, arrays), we may need this guy. | |
| MAX_CACHED_READERS | back to summary |
|---|---|
| protected static final int MAX_CACHED_READERS While we should be able to cache all types in the active working set, we should also avoid potential unbounded retention, since there is often just one big instance per JVM (or at least ClassLoader). | |
| ValueReaderLocator | back to summary |
|---|---|
| protected ValueReaderLocator(ReaderWriterProvider rwp, ReaderWriterModifier rwm) Constructor for the blueprint instance | |
| ValueReaderLocator | back to summary |
|---|---|
| protected ValueReaderLocator(ValueReaderLocator base, int features, JSONReader r) | |
| ValueReaderLocator | back to summary |
|---|---|
| protected ValueReaderLocator(ValueReaderLocator base, ReaderWriterProvider rwp, ReaderWriterModifier rwm) | |
| _bindings | back to summary |
|---|---|
| private TypeBindings _bindings(Class<?> ctxt) | |
| _createReader | back to summary |
|---|---|
| protected ValueReader _createReader(Class<?> contextType, Class<?> type, Type genericType) | |
| _resolveBeanDef | back to summary |
|---|---|
| protected POJODefinition _resolveBeanDef(Class<?> raw) | |
| _resolveBeanForDeser | back to summary |
|---|---|
| protected BeanReader _resolveBeanForDeser(Class<?> raw, POJODefinition beanDef) | |
| arrayReader | back to summary |
|---|---|
| protected ValueReader arrayReader(Class<?> contextType, Class<?> arrayType) | |
| beanReader | back to summary |
|---|---|
| protected ValueReader beanReader(Class<?> type) | |
| blueprint | back to summary |
|---|---|
| public static final ValueReaderLocator blueprint(ReaderWriterProvider rwp, ReaderWriterModifier rwm) | |
| collectionReader | back to summary |
|---|---|
| protected ValueReader collectionReader(Class<?> contextType, Type collectionType) | |
| collectionReader | back to summary |
|---|---|
| protected ValueReader collectionReader(Class<?> collectionType, ResolvedType valueType) | |
| createReader | back to summary |
|---|---|
| protected ValueReader createReader(Class<?> contextType, Class<?> type, Type genericType) Factory method for creating standard readers of any declared type.
| |
| enumReader | back to summary |
|---|---|
| protected ValueReader enumReader(Class<?> enumType) | |
| findReader | back to summary |
|---|---|
| public ValueReader findReader(Class<?> raw) Method used during deserialization to find handler for given non-generic type: will first check for already resolved (and cached) readers -- and return if one found -- and then if no cached reader found, create one, cache, return.
| |
| mapReader | back to summary |
|---|---|
| protected ValueReader mapReader(Class<?> contextType, Type mapType) | |
| mapReader | back to summary |
|---|---|
| protected ValueReader mapReader(Class<?> mapType, ResolvedType valueType) | |
| perOperationInstance | back to summary |
|---|---|
| public ValueReaderLocator perOperationInstance(JSONReader r, int features) | |
| readerWriterModifier | back to summary |
|---|---|
| public ReaderWriterModifier readerWriterModifier() | |
| readerWriterProvider | back to summary |
|---|---|
| public ReaderWriterProvider readerWriterProvider() | |
| with | back to summary |
|---|---|
| public ValueReaderLocator with(ReaderWriterProvider rwp) | |
| with | back to summary |
|---|---|
| public ValueReaderLocator with(ReaderWriterModifier rwm) | |