validate namespace strategies on configuration update

This commit is contained in:
Sebastian Sdorra
2019-03-12 16:40:08 +01:00
parent cb554eb7bc
commit 7d994c62a6
4 changed files with 91 additions and 2 deletions

View File

@@ -0,0 +1,26 @@
package sonia.scm.repository;
import javax.inject.Inject;
import java.util.Set;
import static sonia.scm.ScmConstraintViolationException.Builder.doThrow;
public class NamespaceStrategyValidator {
private final Set<NamespaceStrategy> strategies;
@Inject
public NamespaceStrategyValidator(Set<NamespaceStrategy> strategies) {
this.strategies = strategies;
}
public void check(String name) {
doThrow()
.violation("unknown NamespaceStrategy " + name, "namespaceStrategy")
.when(!isValid(name));
}
private boolean isValid(String name) {
return strategies.stream().anyMatch(ns -> ns.getClass().getSimpleName().equals(name));
}
}