public final class ConstructorDetector extends Object implements Serializable
Modifier and Type | Class and Description |
---|---|
static class |
ConstructorDetector.SingleArgConstructor
Definition of alternate handling modes of single-argument constructors
that are annotated with
JsonCreator
but without "mode" definition (or explicit name for the argument):
this is the case where two interpretations
are possible -- "properties" (in which case the argument is named parameter
of a JSON Object) and "delegating (in which case the argument maps to the
whole JSON value). |
Modifier and Type | Field and Description |
---|---|
protected boolean |
_allowJDKTypeCtors
Whether auto-detection of constructors of "JDK types" (those in
packages
java. and javax. ) is allowed or not |
protected boolean |
_requireCtorAnnotation
Whether explicit
JsonCreator
is always required for detecting constructors (even if visible) other
than the default (no argument) constructor. |
protected ConstructorDetector.SingleArgConstructor |
_singleArgMode |
static ConstructorDetector |
DEFAULT
Instance used by default, which:
Uses
ConstructorDetector.SingleArgConstructor.HEURISTIC for single-argument constructor case
Does not require explicit @JsonCreator annotations (so allows
auto-detection of Visible constructors} (except for JDK types)
Does not allow auto-detection of Visible constructors for so-called JDK
types; that is, classes in packages java.* and javax.*
|
static ConstructorDetector |
EXPLICIT_ONLY
Instance similar to
DEFAULT except that for single-argument case
uses setting of ConstructorDetector.SingleArgConstructor.REQUIRE_MODE . |
static ConstructorDetector |
USE_DELEGATING
Instance similar to
DEFAULT except that for single-argument case
uses setting of ConstructorDetector.SingleArgConstructor.DELEGATING . |
static ConstructorDetector |
USE_PROPERTIES_BASED
Instance similar to
DEFAULT except that for single-argument case
uses setting of ConstructorDetector.SingleArgConstructor.PROPERTIES . |
Modifier | Constructor and Description |
---|---|
protected |
ConstructorDetector(ConstructorDetector.SingleArgConstructor singleArgMode)
Constructors used for default configurations which only varies
by
_singleArgMode |
protected |
ConstructorDetector(ConstructorDetector.SingleArgConstructor singleArgMode,
boolean requireCtorAnnotation,
boolean allowJDKTypeCtors) |
Modifier and Type | Method and Description |
---|---|
boolean |
allowJDKTypeConstructors() |
boolean |
requireCtorAnnotation() |
boolean |
shouldIntrospectorImplicitConstructors(Class<?> rawType)
Accessor that combines checks for whether implicit creators are allowed
and, if so, whether JDK type constructors are allowed (if type is JDK type)
to determine whether implicit constructor
detection should be enabled for given type or not.
|
boolean |
singleArgCreatorDefaultsToDelegating() |
boolean |
singleArgCreatorDefaultsToProperties() |
ConstructorDetector.SingleArgConstructor |
singleArgMode() |
ConstructorDetector |
withAllowJDKTypeConstructors(boolean state) |
ConstructorDetector |
withRequireAnnotation(boolean state) |
ConstructorDetector |
withSingleArgMode(ConstructorDetector.SingleArgConstructor singleArgMode) |
public static final ConstructorDetector DEFAULT
ConstructorDetector.SingleArgConstructor.HEURISTIC
for single-argument constructor case
@JsonCreator
annotations (so allows
auto-detection of Visible constructors} (except for JDK types)
java.*
and javax.*
public static final ConstructorDetector USE_PROPERTIES_BASED
DEFAULT
except that for single-argument case
uses setting of ConstructorDetector.SingleArgConstructor.PROPERTIES
.public static final ConstructorDetector USE_DELEGATING
DEFAULT
except that for single-argument case
uses setting of ConstructorDetector.SingleArgConstructor.DELEGATING
.public static final ConstructorDetector EXPLICIT_ONLY
DEFAULT
except that for single-argument case
uses setting of ConstructorDetector.SingleArgConstructor.REQUIRE_MODE
.protected final ConstructorDetector.SingleArgConstructor _singleArgMode
protected final boolean _requireCtorAnnotation
JsonCreator
is always required for detecting constructors (even if visible) other
than the default (no argument) constructor.protected final boolean _allowJDKTypeCtors
java.
and javax.
) is allowed or notprotected ConstructorDetector(ConstructorDetector.SingleArgConstructor singleArgMode, boolean requireCtorAnnotation, boolean allowJDKTypeCtors)
protected ConstructorDetector(ConstructorDetector.SingleArgConstructor singleArgMode)
_singleArgMode
public ConstructorDetector withSingleArgMode(ConstructorDetector.SingleArgConstructor singleArgMode)
public ConstructorDetector withRequireAnnotation(boolean state)
public ConstructorDetector withAllowJDKTypeConstructors(boolean state)
public ConstructorDetector.SingleArgConstructor singleArgMode()
public boolean requireCtorAnnotation()
public boolean allowJDKTypeConstructors()
public boolean singleArgCreatorDefaultsToDelegating()
public boolean singleArgCreatorDefaultsToProperties()
public boolean shouldIntrospectorImplicitConstructors(Class<?> rawType)
rawType
- Value type to considerCopyright © 2008–2023 FasterXML. All rights reserved.