AbstractCandidateSteps.java
- package org.jbehave.core.steps;
- import java.lang.reflect.Method;
- import java.util.List;
- import org.jbehave.core.configuration.Configuration;
- import org.jbehave.core.parsers.StepMatcher;
- import org.jbehave.core.parsers.StepPatternParser;
- public abstract class AbstractCandidateSteps implements CandidateSteps {
- private final Configuration configuration;
- protected AbstractCandidateSteps(Configuration configuration) {
- this.configuration = configuration;
- }
- protected Configuration configuration() {
- return configuration;
- }
- protected void addCandidatesFromVariants(List<StepCandidate> candidates, Method method, StepType stepType,
- String value, int priority, Class<?> type, InjectableStepsFactory stepsFactory, String[] steps) {
- StepPatternParser stepPatternParser = configuration.stepPatternParser();
- PatternVariantBuilder patternVariantBuilder = new PatternVariantBuilder(value);
- for (String variant : patternVariantBuilder.allVariants()) {
- StepMatcher stepMatcher = stepPatternParser.parseStep(stepType, variant);
- StepCreator stepCreator = createStepCreator(type, stepsFactory, stepMatcher);
- stepCreator.useParanamer(configuration.paranamer());
- StepCandidate candidate = new StepCandidate(variant, priority, stepType, method, type, stepsFactory,
- configuration.keywords(), stepMatcher, stepPatternParser.getPrefix(), stepCreator, steps,
- configuration.stepMonitor());
- candidates.add(candidate);
- }
- }
- protected final StepCreator createStepCreator(Class<?> type, InjectableStepsFactory stepsFactory) {
- return createStepCreator(type, stepsFactory, null);
- }
- private StepCreator createStepCreator(Class<?> type, InjectableStepsFactory stepsFactory, StepMatcher stepMatcher) {
- return new StepCreator(type, stepsFactory, configuration.stepsContext(), configuration.parameterConverters(),
- configuration.expressionResolver(), configuration.parameterControls(), stepMatcher,
- configuration.stepMonitor(), configuration.storyControls().dryRun());
- }
- }