ReflectionBasedStepConditionMatcher.java
- package org.jbehave.core.condition;
- import java.lang.reflect.Constructor;
- import java.util.function.Predicate;
- public class ReflectionBasedStepConditionMatcher implements StepConditionMatcher {
- @Override
- public boolean matches(Class<? extends Predicate<Object>> type, Object value) throws StepConditionMatchException {
- try {
- Constructor<? extends Predicate<Object>> constructor = type.getConstructor();
- Predicate<Object> instance = constructor.newInstance();
- return instance.test(value);
- } catch (NoSuchMethodException e) {
- throw new StepConditionMatchException(
- "Condition implementation class must have public no-args constructor");
- } catch (ReflectiveOperationException | IllegalArgumentException e) {
- throw new StepConditionMatchException(e);
- }
- }
- }