com.fasterxml.jackson.databind.cfg

## Enum ConstructorDetector.SingleArgConstructor

- java.lang.Object
- - java.lang.Enum<ConstructorDetector.SingleArgConstructor>
  - - com.fasterxml.jackson.databind.cfg.ConstructorDetector.SingleArgConstructor

All Implemented Interfaces:
  Serializable, Comparable<ConstructorDetector.SingleArgConstructor>

Enclosing class:
  ConstructorDetector

    public static enum ConstructorDetector.SingleArgConstructor
    extends Enum<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).

Default choice is `HEURISTIC` (which is Jackson pre-2.12 always uses)

NOTE: does NOT have any effect if explicit `@JsonCreator`} annotation is required.

Since:
  2.12

### Enum Constant Summary

Enum Constants
Enum Constant and Description
`DELEGATING` Assume "delegating" mode if not explicitly annotated otherwise
`HEURISTIC` Use heuristics to see if "properties" mode is to be used (POJO has a property with the same name as the implicit name [if available] of the constructor argument).
`PROPERTIES` Assume "properties" mode if not explicitly annotated otherwise
`REQUIRE_MODE` Refuse to decide implicit mode and instead throw a `InvalidDefinitionException` in ambiguous case.

### Method Summary

All Methods Static Methods Concrete Methods
`static ConstructorDetector.SingleArgConstructor` `valueOf(String name)` Returns the enum constant of this type with the specified name.
`static ConstructorDetector.SingleArgConstructor[]` `values()` Returns an array containing the constants of this enum type, in the order they are declared.

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

`clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

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

`getClass, notify, notifyAll, wait, wait, wait`

### Enum Constant Detail

#### DELEGATING

    public static final ConstructorDetector.SingleArgConstructor DELEGATING

Assume "delegating" mode if not explicitly annotated otherwise

#### PROPERTIES

    public static final ConstructorDetector.SingleArgConstructor PROPERTIES

Assume "properties" mode if not explicitly annotated otherwise

#### HEURISTIC

    public static final ConstructorDetector.SingleArgConstructor HEURISTIC

Use heuristics to see if "properties" mode is to be used (POJO has a property with the same name as the implicit name [if available] of the constructor argument). Note: this is the default choice for Jackson versions before 2.12.

#### REQUIRE_MODE

    public static final ConstructorDetector.SingleArgConstructor REQUIRE_MODE

Refuse to decide implicit mode and instead throw a `InvalidDefinitionException` in ambiguous case.

### Method Detail

#### values

    public static ConstructorDetector.SingleArgConstructor[] values()

Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:

    for (ConstructorDetector.SingleArgConstructor c : ConstructorDetector.SingleArgConstructor.values())
        System.out.println(c);

Returns:
  an array containing the constants of this enum type, in the order they are declared

#### valueOf

    public static ConstructorDetector.SingleArgConstructor valueOf(String name)

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Parameters:
  `name` - the name of the enum constant to be returned.
Returns:
  the enum constant with the specified name
Throws:
  `IllegalArgumentException` - if this enum type has no constant with the specified name
  `NullPointerException` - if the argument is null