1 package com.fasterxml.jackson.databind.cfg;
2 
3 import com.fasterxml.jackson.databind.type.LogicalType;
4 
5 /**
6  * Set of possible actions for requested coercion from an
7  * input shape {@link CoercionInputShape}
8  * that does not directly or naturally match target type
9  * ({@link LogicalType}).
10  * This action is suggestion for deserializers to use in cases
11  * where alternate actions could be appropriate: it is up to deserializer
12  * to check configured action and take it into consideration.
13  *
14  * @since 2.12
15  */
16 public enum CoercionAction
17 {
18     /**
19      * Action to fail coercion attempt with exceptipn
20      */
21     Fail,
22 
23     /**
24      * Action to attempt coercion (which may lead to failure)
25      */
26     TryConvert,
27 
28     /**
29      * Action to convert to {@code null} value
30      */
31     AsNull,
32 
33     /**
34      * Action to convert to "empty" value for type, whatever that is: for
35      * primitive types and their wrappers this is "default" value (for example,
36      * for {@code int} that would be {@code 0}); for {@link java.util.Collection}s
37      * empty collection; for POJOs instance configured with default constructor
38      * and so on.
39      */
40     AsEmpty;
41     ;
42 }
43