CompositeCandidateSteps.java

  1. package org.jbehave.core.steps;

  2. import java.util.ArrayList;
  3. import java.util.Collections;
  4. import java.util.List;
  5. import java.util.Map;
  6. import java.util.Set;

  7. import org.jbehave.core.annotations.ScenarioType;
  8. import org.jbehave.core.configuration.Configuration;
  9. import org.jbehave.core.io.ResourceLoader;
  10. import org.jbehave.core.model.Composite;
  11. import org.jbehave.core.parsers.CompositeParser;

  12. public class CompositeCandidateSteps extends AbstractCandidateSteps {

  13.     private final Set<String> compositePaths;

  14.     public CompositeCandidateSteps(Configuration configuration, Set<String> compositePaths) {
  15.         super(configuration);
  16.         this.compositePaths = compositePaths;
  17.     }

  18.     @Override
  19.     public List<StepCandidate> listCandidates() {
  20.         CompositeParser parser = configuration().compositeParser();
  21.         ResourceLoader resourceLoader = configuration().storyLoader();
  22.         List<StepCandidate> candidates = new ArrayList<>();
  23.         for (String compositePath : compositePaths) {
  24.             List<Composite> composites = parser.parseComposites(resourceLoader.loadResourceAsText(compositePath));
  25.             addCandidatesFromComposites(candidates, composites);
  26.         }
  27.         return candidates;
  28.     }

  29.     private void addCandidatesFromComposites(List<StepCandidate> candidates, List<Composite> composites) {
  30.         for (Composite composite : composites) {
  31.             String[] steps = composite.getSteps().toArray(new String[0]);
  32.             addCandidatesFromVariants(candidates, null, composite.getStepType(),
  33.                     composite.getStepWithoutStartingWord(), composite.getPriority(), null, null, steps);
  34.         }
  35.     }

  36.     @Override
  37.     public List<BeforeOrAfterStep> listBeforeStories() {
  38.         return Collections.emptyList();
  39.     }

  40.     @Override
  41.     public List<BeforeOrAfterStep> listAfterStories() {
  42.         return Collections.emptyList();
  43.     }

  44.     @Override
  45.     public List<BeforeOrAfterStep> listBeforeStory(boolean givenStory) {
  46.         return Collections.emptyList();
  47.     }

  48.     @Override
  49.     public List<BeforeOrAfterStep> listAfterStory(boolean givenStory) {
  50.         return Collections.emptyList();
  51.     }

  52.     @Override
  53.     public Map<ScenarioType, List<BeforeOrAfterStep>> listBeforeScenario() {
  54.         return Collections.emptyMap();
  55.     }

  56.     @Override
  57.     public Map<ScenarioType, List<BeforeOrAfterStep>> listAfterScenario() {
  58.         return Collections.emptyMap();
  59.     }
  60. }