Tony CHEMIT pushed to branch develop-9 at ultreiaio / ird-observe
Commits:
-
636637d8
by Tony Chemit at 2021-05-20T13:45:52+02:00
2 changed files:
- server/core/src/main/java/fr/ird/observe/server/injector/JsonInjector.java
- server/core/src/main/java/fr/ird/observe/server/injector/ObserveDtoInjector.java
Changes:
| ... | ... | @@ -64,6 +64,9 @@ public abstract class JsonInjector<O> implements ExecutorParametersInjectorHandl |
| 64 | 64 |
Call.ParameterTree parameterTree;
|
| 65 | 65 |
try {
|
| 66 | 66 |
parameterTree = parameterTreeObject.get(name);
|
| 67 |
+ if (parameterTree == null) {
|
|
| 68 |
+ return buildNullValue(call, name, type, generic);
|
|
| 69 |
+ }
|
|
| 67 | 70 |
Objects.requireNonNull(parameterTree);
|
| 68 | 71 |
} catch (Exception e) {
|
| 69 | 72 |
log.error(String.format("Could not get parameterTree for mapping: %s, call: %s - name: %s, type: %s", mapping, call, name, type), e);
|
| ... | ... | @@ -80,4 +83,8 @@ public abstract class JsonInjector<O> implements ExecutorParametersInjectorHandl |
| 80 | 83 |
return null;
|
| 81 | 84 |
}
|
| 82 | 85 |
|
| 86 |
+ protected O buildNullValue(Call call, String name, Class<?> type, Type generic) {
|
|
| 87 |
+ throw new NullPointerException(String.format("By default do not accept null parameterTrees for parameter: %s with type: %s", name, type.getName()));
|
|
| 88 |
+ }
|
|
| 89 |
+ |
|
| 83 | 90 |
}
|
| ... | ... | @@ -25,6 +25,7 @@ package fr.ird.observe.server.injector; |
| 25 | 25 |
import com.google.gson.Gson;
|
| 26 | 26 |
import com.google.gson.JsonParseException;
|
| 27 | 27 |
import fr.ird.observe.dto.ObserveDto;
|
| 28 |
+import fr.ird.observe.toolkit.navigation.tree.io.request.ToolkitRequestConfig;
|
|
| 28 | 29 |
import io.ultreia.java4all.http.HRestClientService;
|
| 29 | 30 |
import org.apache.logging.log4j.LogManager;
|
| 30 | 31 |
import org.apache.logging.log4j.Logger;
|
| ... | ... | @@ -70,4 +71,11 @@ public class ObserveDtoInjector extends JsonInjector<ObserveDto> { |
| 70 | 71 |
return observeDto;
|
| 71 | 72 |
}
|
| 72 | 73 |
|
| 74 |
+ @Override
|
|
| 75 |
+ protected ObserveDto buildNullValue(Call call, String name, Class<?> type, Type generic) {
|
|
| 76 |
+ if (ToolkitRequestConfig.class.isAssignableFrom(type)) {
|
|
| 77 |
+ return gson.fromJson("{}", generic);
|
|
| 78 |
+ }
|
|
| 79 |
+ return super.buildNullValue(call, name, type, generic);
|
|
| 80 |
+ }
|
|
| 73 | 81 |
}
|