Class StepFinder

java.lang.Object
org.jbehave.core.steps.StepFinder

public class StepFinder extends Object

StepFinder is reponsible for finding and prioritising step candidates or finding steps instances from CandidateSteps, which are created using an InjectableStepsFactory.

The StepCandidates are responsible for the matching of a particular textual step and are sometimes represented as Stepdocs, each of which is simply a facade documenting a candidate. The candidates can be prioritised via an injectable StepFinder.PrioritisingStrategy, defaulting to StepFinder.ByPriorityField. A more sophisticated strategy that can be used is the StepFinder.ByLevenshteinDistance.

  • Constructor Details

    • StepFinder

      public StepFinder()
      Creates a StepFinder with a StepFinder.ByPriorityField strategy
    • StepFinder

      public StepFinder(StepFinder.PrioritisingStrategy prioritisingStrategy)
      Creates a StepFinder with a custom strategy
      Parameters:
      prioritisingStrategy - the PrioritisingStrategy
    • StepFinder

      public StepFinder(StepConditionMatcher stepConditionMatcher)
      Creates a StepFinder with a custom step condition matcher
      Parameters:
      stepConditionMatcher - the StepConditionMatcher
  • Method Details

    • stepdocs

      public List<Stepdoc> stepdocs(List<CandidateSteps> candidateSteps)
      Returns the stepdocs for the candidates collected from the given CandidateSteps.
      Parameters:
      candidateSteps - the List of CandidateSteps
      Returns:
      The List of Stepdocs, one for each StepCandidate.
    • findMatching

      public List<Stepdoc> findMatching(String stepAsText, List<CandidateSteps> candidateSteps)
      Finds matching steps, represented as Stepdocs, for a given textual step and a list of CandidateSteps.
      Parameters:
      stepAsText - the textual step
      candidateSteps - the List of CandidateSteps
      Returns:
      The list of Stepdocs, one for each matched StepCandidate.
    • stepsInstances

      public List<Object> stepsInstances(List<CandidateSteps> candidateSteps)
      Returns the steps instances associated to CandidateSteps
      Parameters:
      candidateSteps - the List of CandidateSteps
      Returns:
      The List of steps instances
    • prioritise

      public List<StepCandidate> prioritise(String stepAsText, List<StepCandidate> candidates)
      Prioritises the list of step candidates that match a given step.
      Parameters:
      stepAsText - the textual step to match
      candidates - the List of StepCandidate
      Returns:
      The prioritised list according to the StepFinder.PrioritisingStrategy.