Class DynamicPromptHelper

java.lang.Object
org.jline.prompt.DynamicPromptHelper

public class DynamicPromptHelper extends Object
Utility class to help with dynamic prompting scenarios. Provides common patterns and helper methods for conditional prompting.
  • Method Details

    • when

      public static Function<Map<String,? extends PromptResult<? extends Prompt>>,List<? extends Prompt>> when(Predicate<Map<String,? extends PromptResult<? extends Prompt>>> condition, Function<Map<String,? extends PromptResult<? extends Prompt>>,List<? extends Prompt>> promptProvider)
      Creates a conditional prompt provider that only shows prompts when a condition is met.
      Parameters:
      condition - the condition to check against previous results
      promptProvider - the provider to call when condition is true
      Returns:
      a conditional prompt provider
    • whenResultExists

      public static Function<Map<String,? extends PromptResult<? extends Prompt>>,List<? extends Prompt>> whenResultExists(String resultName, Function<Map<String,? extends PromptResult<? extends Prompt>>,List<? extends Prompt>> promptProvider)
      Creates a prompt provider that only executes if a specific result exists.
      Parameters:
      resultName - the name of the result that must exist
      promptProvider - the provider to call when the result exists
      Returns:
      a conditional prompt provider
    • whenResultEquals

      public static Function<Map<String,? extends PromptResult<? extends Prompt>>,List<? extends Prompt>> whenResultEquals(String resultName, String expectedValue, Function<Map<String,? extends PromptResult<? extends Prompt>>,List<? extends Prompt>> promptProvider)
      Creates a prompt provider that only executes if a specific result has a specific value.
      Parameters:
      resultName - the name of the result to check
      expectedValue - the expected value
      promptProvider - the provider to call when the condition is met
      Returns:
      a conditional prompt provider
    • whenResultMissing

      public static Function<Map<String,? extends PromptResult<? extends Prompt>>,List<? extends Prompt>> whenResultMissing(String resultName, Function<Map<String,? extends PromptResult<? extends Prompt>>,List<? extends Prompt>> promptProvider)
      Creates a prompt provider that only executes if a specific result does NOT exist.
      Parameters:
      resultName - the name of the result that must not exist
      promptProvider - the provider to call when the result doesn't exist
      Returns:
      a conditional prompt provider
    • chain

      @SafeVarargs public static Function<Map<String,? extends PromptResult<? extends Prompt>>,List<? extends Prompt>> chain(Function<Map<String,? extends PromptResult<? extends Prompt>>,List<? extends Prompt>>... providers)
      Creates a prompt provider that chains multiple conditional providers. Each provider is tried in order until one returns a non-null result.
      Parameters:
      providers - the providers to chain
      Returns:
      a chained prompt provider
    • getResultValue

      public static String getResultValue(Map<String,? extends PromptResult<? extends Prompt>> results, String resultName)
      Gets the result value for a specific prompt, or null if not found.
      Parameters:
      results - the results map
      resultName - the name of the result
      Returns:
      the result value or null
    • hasValue

      public static boolean hasValue(Map<String,? extends PromptResult<? extends Prompt>> results, String resultName)
      Checks if a result exists and has a non-empty value.
      Parameters:
      results - the results map
      resultName - the name of the result
      Returns:
      true if the result exists and has a non-empty value
    • resultEqualsAny

      public static boolean resultEqualsAny(Map<String,? extends PromptResult<? extends Prompt>> results, String resultName, String... values)
      Checks if a result equals any of the given values.
      Parameters:
      results - the results map
      resultName - the name of the result
      values - the values to check against
      Returns:
      true if the result equals any of the values
    • allResultsExist

      public static boolean allResultsExist(Map<String,? extends PromptResult<? extends Prompt>> results, String... resultNames)
      Checks if all specified results exist.
      Parameters:
      results - the results map
      resultNames - the names of the results to check
      Returns:
      true if all results exist
    • anyResultExists

      public static boolean anyResultExists(Map<String,? extends PromptResult<? extends Prompt>> results, String... resultNames)
      Checks if any of the specified results exist.
      Parameters:
      results - the results map
      resultNames - the names of the results to check
      Returns:
      true if any result exists