package org.onap.so.bpmn.common.validation;
+import java.util.Optional;
import java.util.Set;
import org.onap.so.bpmn.common.BuildingBlockExecution;
/**
* Determines whether or not the workflow should be executed
+
*
* @param execution
* @return
*/
- public boolean validate(BuildingBlockExecution execution);
+ public Optional<String> validate(BuildingBlockExecution execution);
}
}
protected boolean validate(List<? extends FlowValidator> validators, String bbName, BuildingBlockExecution execution) {
- List<Pair<String, Boolean>> results = runValidations(validators, bbName, execution);
+ List<Pair<String, Optional<String>>> results = runValidations(validators, bbName, execution);
if (!results.isEmpty()) {
exceptionBuilder.buildAndThrowWorkflowException(execution, 7000,
- "Failed Validations:\n" + results.stream().map(item -> item.getValue0()).collect(Collectors.joining("\n")));
+ "Failed Validations:\n" + results.stream().map(item -> String.format("%s: %s", item.getValue0(), item.getValue1().get())).collect(Collectors.joining("\n")));
}
return true;
}
- protected List<Pair<String, Boolean>> runValidations(List<? extends FlowValidator> validators, String bbName, BuildingBlockExecution execution) {
+ protected List<Pair<String, Optional<String>>> runValidations(List<? extends FlowValidator> validators, String bbName, BuildingBlockExecution execution) {
List<FlowValidator> filtered = filterValidators(validators, bbName);
- List<Pair<String,Boolean>> results = new ArrayList<>();
+ List<Pair<String,Optional<String>>> results = new ArrayList<>();
filtered.forEach(item -> results.add(new Pair<>(item.getClass().getName(), item.validate(execution))));
- return results.stream().filter(item -> item.getValue1().equals(false)).collect(Collectors.toList());
+ return results.stream().filter(item -> item.getValue1().isPresent()).collect(Collectors.toList());
}
protected List<FlowValidator> filterValidators(List<? extends FlowValidator> validators, String bbName) {
fail("exception not thrown");
} catch (BpmnError e) {
WorkflowException workflowException = (WorkflowException)execution.getVariable("WorkflowException");
- assertEquals("Failed Validations:\norg.onap.so.bpmn.common.validation.MyPreValidatorTwo\norg.onap.so.bpmn.common.validation.MyPreValidatorOne", workflowException.getErrorMessage());
+ assertEquals("Failed Validations:\norg.onap.so.bpmn.common.validation.MyPreValidatorTwo: my-error-two\norg.onap.so.bpmn.common.validation.MyPreValidatorOne: my-error-one", workflowException.getErrorMessage());
}
runner.preValidate("test2", mock(BuildingBlockExecution.class));
}
package org.onap.so.bpmn.common.validation;
import java.util.Collections;
+import java.util.Optional;
import java.util.Set;
import org.onap.so.bpmn.common.BuildingBlockExecution;
}
@Override
- public boolean validate(BuildingBlockExecution exeuction) {
- return true;
+ public Optional<String> validate(BuildingBlockExecution exeuction) {
+ return Optional.of("my-error-four");
}
}
package org.onap.so.bpmn.common.validation;
import java.util.Collections;
+import java.util.Optional;
import java.util.Set;
import org.onap.so.bpmn.common.BuildingBlockExecution;
}
@Override
- public boolean validate(BuildingBlockExecution exeuction) {
- return false;
+ public Optional<String> validate(BuildingBlockExecution exeuction) {
+ return Optional.of("my-error-one");
}
}
package org.onap.so.bpmn.common.validation;
import java.util.Collections;
+import java.util.Optional;
import java.util.Set;
import org.onap.so.bpmn.common.BuildingBlockExecution;
}
@Override
- public boolean validate(BuildingBlockExecution exeuction) {
- return true;
+ public Optional<String> validate(BuildingBlockExecution exeuction) {
+ return Optional.of("my-error-three");
}
}
package org.onap.so.bpmn.common.validation;
import java.util.Collections;
+import java.util.Optional;
import java.util.Set;
import javax.annotation.Priority;
}
@Override
- public boolean validate(BuildingBlockExecution exeuction) {
- return false;
+ public Optional<String> validate(BuildingBlockExecution exeuction) {
+ return Optional.of("my-error-two");
}
}
package org.onap.so.bpmn.common.validation;
import java.util.Collections;
+import java.util.Optional;
import java.util.Set;
import org.onap.so.bpmn.common.BuildingBlockExecution;
}
@Override
- public boolean validate(BuildingBlockExecution exeuction) {
- return false;
+ public Optional<String> validate(BuildingBlockExecution exeuction) {
+ return Optional.of("my-error-one");
}
}
package org.onap.so.bpmn.common.validation;
import java.util.Collections;
+import java.util.Optional;
import java.util.Set;
import javax.annotation.Priority;
}
@Override
- public boolean validate(BuildingBlockExecution execution) {
- return false;
+ public Optional<String> validate(BuildingBlockExecution exeuction) {
+ return Optional.of("my-error-two");
}
}
fail("exception not thrown");
} catch (BpmnError e) {
WorkflowException workflowException = (WorkflowException) execution.getVariable("WorkflowException");
- assertEquals("Failed Validations:\norg.onap.so.bpmn.common.validation.WorkflowPreValidatorTwo\norg.onap.so.bpmn.common.validation.WorkflowPreValidatorOne", workflowException.getErrorMessage());
+ assertEquals("Failed Validations:\norg.onap.so.bpmn.common.validation.WorkflowPreValidatorTwo: my-error-two\norg.onap.so.bpmn.common.validation.WorkflowPreValidatorOne: my-error-one", workflowException.getErrorMessage());
}
runner.preValidate("test2", mock(DelegateExecution.class));
}