Skip to content

Commit b3a3aa5

Browse files
committed
When parsing the json we no longer throw exception if there is an unknown property.
1 parent 82fc0cb commit b3a3aa5

File tree

1 file changed

+23
-19
lines changed

1 file changed

+23
-19
lines changed

src/main/java/io/github/filelize/Filelizer.java

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package io.github.filelize;
22

3+
import com.fasterxml.jackson.databind.DeserializationFeature;
34
import com.fasterxml.jackson.databind.ObjectMapper;
45
import com.fasterxml.jackson.databind.SerializationFeature;
5-
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
66
import org.slf4j.Logger;
77
import 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

Comments
 (0)