added validate method to config
This commit is contained in:
parent
90d34b5bd0
commit
6db073ba53
@ -213,8 +213,7 @@ public class CalculatedFieldController extends BaseController {
|
|||||||
@RequestBody JsonNode inputParams) {
|
@RequestBody JsonNode inputParams) {
|
||||||
String expression = inputParams.get("expression").asText();
|
String expression = inputParams.get("expression").asText();
|
||||||
Map<String, TbelCfArg> arguments = Objects.requireNonNullElse(
|
Map<String, TbelCfArg> arguments = Objects.requireNonNullElse(
|
||||||
JacksonUtil.convertValue(inputParams.get("arguments"), new TypeReference<>() {
|
JacksonUtil.convertValue(inputParams.get("arguments"), new TypeReference<>() {}),
|
||||||
}),
|
|
||||||
Collections.emptyMap()
|
Collections.emptyMap()
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -289,8 +288,7 @@ public class CalculatedFieldController extends BaseController {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
case CUSTOMER, ASSET, DEVICE -> checkEntityId(referencedEntityId, Operation.READ);
|
case CUSTOMER, ASSET, DEVICE -> checkEntityId(referencedEntityId, Operation.READ);
|
||||||
default ->
|
default -> throw new IllegalArgumentException("Calculated fields do not support '" + entityType + "' for referenced entities.");
|
||||||
throw new IllegalArgumentException("Calculated fields do not support '" + entityType + "' for referenced entities.");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,8 +14,6 @@ public interface ArgumentsBasedCalculatedFieldConfiguration extends CalculatedFi
|
|||||||
|
|
||||||
Output getOutput();
|
Output getOutput();
|
||||||
|
|
||||||
void validate();
|
|
||||||
|
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
default boolean isScheduledUpdateEnabled() {
|
default boolean isScheduledUpdateEnabled() {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@ -60,6 +60,9 @@ public abstract class BaseCalculatedFieldConfiguration implements ArgumentsBased
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void validate() {
|
public void validate() {
|
||||||
|
if (arguments.containsKey("ctx")) {
|
||||||
|
throw new IllegalArgumentException("Argument name 'ctx' is reserved and cannot be used.");
|
||||||
|
}
|
||||||
if (arguments.values().stream().anyMatch(Argument::hasDynamicSource)) {
|
if (arguments.values().stream().anyMatch(Argument::hasDynamicSource)) {
|
||||||
throw new IllegalArgumentException("Calculated field with type: '" + getType() + "' doesn't support dynamic source configuration!");
|
throw new IllegalArgumentException("Calculated field with type: '" + getType() + "' doesn't support dynamic source configuration!");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -44,6 +44,8 @@ public interface CalculatedFieldConfiguration {
|
|||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
CalculatedFieldType getType();
|
CalculatedFieldType getType();
|
||||||
|
|
||||||
|
void validate();
|
||||||
|
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
default List<EntityId> getReferencedEntities() {
|
default List<EntityId> getReferencedEntities() {
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
|
|||||||
@ -82,15 +82,10 @@ public class CalculatedFieldDataValidator extends DataValidator<CalculatedField>
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void validateCalculatedFieldConfiguration(CalculatedField calculatedField) {
|
private void validateCalculatedFieldConfiguration(CalculatedField calculatedField) {
|
||||||
if (calculatedField.getConfiguration() instanceof ArgumentsBasedCalculatedFieldConfiguration configuration) {
|
try {
|
||||||
if (configuration.getArguments().containsKey("ctx")) {
|
calculatedField.getConfiguration().validate();
|
||||||
throw new DataValidationException("Argument name 'ctx' is reserved and cannot be used.");
|
} catch (IllegalArgumentException e) {
|
||||||
}
|
throw new DataValidationException(e.getMessage(), e);
|
||||||
try {
|
|
||||||
configuration.validate();
|
|
||||||
} catch (IllegalArgumentException e) {
|
|
||||||
throw new DataValidationException(e.getMessage(), e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user