Class PatternVariantBuilder


  • public class PatternVariantBuilder
    extends Object

    Builds a set of pattern variants of given pattern input, supporting a custom directives. Depending on the directives present, one or more resulting variants are created.

    Currently supported directives are

    Pattern Result
    ..A {x|y} B..
    • ..A x B..
    • ..A y B..
    ..A {x|y|} B..
    • ..A x B..
    • ..A y B..
    • ..A B..
    ..A {x} B..
    • ..A x B..

    These directives can be used to conveniently create several variants of a step pattern, without having to repeat it as a whole as one or more aliases.

    Examples:

    • @Then("the result {must |has to |}be $x")
      public void checkResult(int x)...

      Would match any of these variants from a story file:

      • Then the result must be 42
      • Then the result has to be 42
      • Then the result be 42

    • @When("$A {+|plus|is added to} $B")
      public void add(int A, int B)...

      Would match any of these variants from a story file:

      • When 42 + 23
      • When 42 plus 23
      • When 42 is added to 23

    Author:
    Daniel Schneller
    • Constructor Detail

      • PatternVariantBuilder

        public PatternVariantBuilder​(String input)
        Creates a builder and calculates all variants for given input. When there are no variants found in the input, it will itself be the only result.
        Parameters:
        input - to be evaluated
    • Method Detail

      • getInput

        public String getInput()
      • allVariants

        public Set<String> allVariants()
        Returns a new copy set of all variants with no whitespace compression.
        Returns:
        a Set of all variants without whitespace compression
        See Also:
        allVariants(boolean)
      • allVariants

        public Set<String> allVariants​(boolean compressWhitespace)

        Returns a new copy set of all variants. Any two or more consecutive white space characters will be condensed into a single space if boolean flag is set.

        Otherwise, any whitespace will be left as is.

        Parameters:
        compressWhitespace - whether or not to compress whitespace
        Returns:
        a Set of all variants