1 package net.rakugakibox.spring.boot.orika;
2
3 import java.util.Optional;
4
5 import lombok.Data;
6 import ma.glasnost.orika.impl.DefaultMapperFactory.MapperFactoryBuilder;
7 import org.springframework.boot.context.properties.ConfigurationProperties;
8
9 /**
10 * The configuration properties for Orika.
11 */
12 @Data
13 @ConfigurationProperties("orika")
14 public class OrikaProperties {
15
16 /**
17 * Whether to enable auto-configuration.
18 * Defaults to {@code true}.
19 */
20 private Boolean enabled = true;
21
22 /**
23 * Whether to use built-in converters.
24 * Follows Orika's behavior by default.
25 *
26 * @see MapperFactoryBuilder#useBuiltinConverters(boolean)
27 */
28 private Optional<Boolean> useBuiltinConverters = Optional.empty();
29
30 /**
31 * Whether to use auto-mapping.
32 * Follows Orika's behavior by default.
33 *
34 * @see MapperFactoryBuilder#useAutoMapping(boolean)
35 */
36 private Optional<Boolean> useAutoMapping = Optional.empty();
37
38 /**
39 * Whether to map null values.
40 * Follows Orika's behavior by default.
41 *
42 * @see MapperFactoryBuilder#mapNulls(boolean)
43 */
44 private Optional<Boolean> mapNulls = Optional.empty();
45
46 /**
47 * Whether to dump the current state of the mapping infrastructure objects
48 * upon occurrence of an exception while mapping.
49 * Follows Orika's behavior by default.
50 *
51 * @see MapperFactoryBuilder#dumpStateOnException(boolean)
52 */
53 private Optional<Boolean> dumpStateOnException = Optional.empty();
54
55 /**
56 * Whether the class-map should be considered 'abstract'.
57 * Follows Orika's behavior by default.
58 *
59 * @see MapperFactoryBuilder#favorExtension(boolean)
60 */
61 private Optional<Boolean> favorExtension = Optional.empty();
62
63 /**
64 * Whether full field context should be captured.
65 * Follows Orika's behavior by default.
66 *
67 * @see MapperFactoryBuilder#captureFieldContext(boolean)
68 */
69 private Optional<Boolean> captureFieldContext = Optional.empty();
70
71 }