11package io .github .filelize ;
22
3+ import com .fasterxml .jackson .databind .DeserializationFeature ;
34import com .fasterxml .jackson .databind .ObjectMapper ;
45import com .fasterxml .jackson .databind .SerializationFeature ;
5- import com .fasterxml .jackson .datatype .jsr310 .JavaTimeModule ;
66import org .slf4j .Logger ;
77import org .slf4j .LoggerFactory ;
88
@@ -22,36 +22,21 @@ public class Filelizer implements IFilelizer {
2222 private final FilelizeType defaultFilelizeType ;
2323
2424 public Filelizer (String basePath ) {
25- var objectMapper = new ObjectMapper ();
26- objectMapper .findAndRegisterModules ();
27- objectMapper .disable (SerializationFeature .WRITE_DATES_AS_TIMESTAMPS );
25+ var objectMapper = prepareObjectMapper (new ObjectMapper ());
2826 this .filelizerObject = new FilelizerObject (basePath , objectMapper );
2927 this .filelizerSingle = new FilelizerSingle (basePath , objectMapper );
3028 this .filelizerMultiple = new FilelizerMultiple (basePath , objectMapper );
3129 this .defaultFilelizeType = FilelizeType .OBJECT_FILE ;
3230 }
3331
34- public Filelizer (String basePath , ObjectMapper objectMapper , FilelizeType defaultFilelizeType ) {
35- objectMapper .findAndRegisterModules ();
36- objectMapper .disable (SerializationFeature .WRITE_DATES_AS_TIMESTAMPS );
32+ public Filelizer (String basePath , ObjectMapper _objectMapper , FilelizeType defaultFilelizeType ) {
33+ var objectMapper = prepareObjectMapper (_objectMapper );
3734 this .filelizerObject = new FilelizerObject (basePath , objectMapper );
3835 this .filelizerSingle = new FilelizerSingle (basePath , objectMapper );
3936 this .filelizerMultiple = new FilelizerMultiple (basePath , objectMapper );
4037 this .defaultFilelizeType = defaultFilelizeType ;
4138 }
4239
43- private IFilelizer resolveFilelizerType (Object valueType ) {
44- return resolveFilelizerType (getFilelizeType (valueType , defaultFilelizeType ));
45- }
46-
47- private IFilelizer resolveFilelizerType (FilelizeType filelizeType ) {
48- return switch (filelizeType ) {
49- case MULTIPLE_FILES -> filelizerMultiple ;
50- case SINGLE_FILE -> filelizerSingle ;
51- case OBJECT_FILE -> filelizerObject ;
52- };
53- }
54-
5540 @ Override
5641 public <T > T find (String id , Class <T > valueType ) {
5742 return resolveFilelizerType (valueType ).find (id , valueType );
@@ -81,4 +66,23 @@ public <T> List<String> saveAll(List<T> objects) {
8166 public <T > void delete (String id , Class <T > valueType ) {
8267 resolveFilelizerType (valueType ).delete (id , valueType );
8368 }
69+
70+ private IFilelizer resolveFilelizerType (Object valueType ) {
71+ return resolveFilelizerType (getFilelizeType (valueType , defaultFilelizeType ));
72+ }
73+
74+ private IFilelizer resolveFilelizerType (FilelizeType filelizeType ) {
75+ return switch (filelizeType ) {
76+ case MULTIPLE_FILES -> filelizerMultiple ;
77+ case SINGLE_FILE -> filelizerSingle ;
78+ case OBJECT_FILE -> filelizerObject ;
79+ };
80+ }
81+
82+ private static ObjectMapper prepareObjectMapper (ObjectMapper objectMapper ) {
83+ objectMapper .findAndRegisterModules ();
84+ objectMapper .disable (SerializationFeature .WRITE_DATES_AS_TIMESTAMPS );
85+ objectMapper .disable (DeserializationFeature .FAIL_ON_UNKNOWN_PROPERTIES );
86+ return objectMapper ;
87+ }
8488}
0 commit comments