Class CompositeAsker

java.lang.Object
nz.org.riskscape.wizard.ask.BaseAsker
nz.org.riskscape.wizard.ask.CompositeAsker
All Implemented Interfaces:
Asker

public class CompositeAsker extends BaseAsker
  • Constructor Details

    • CompositeAsker

      public CompositeAsker(nz.org.riskscape.engine.i18n.TranslationContext context)
  • Method Details

    • canAsk

      public boolean canAsk(nz.org.riskscape.wizard.bld.IncrementalBuildState buildState, nz.org.riskscape.wizard.Question question)
      Description copied from interface: Asker

      Determine whether this Asker is relevant for the given Question and IncrementalBuildState

      Returns:
      true if this Asker can and should drive the cli to answer the given Question.
    • askUnbound

      public nz.org.riskscape.problem.ResultOrProblems<Object> askUnbound(AskRequest input)
      Description copied from interface: Asker

      Drive the given CliPrompter to answer the given Question. Assume that Asker.canAsk(IncrementalBuildState, Question) has already been tested and returned true.

      Specified by:
      askUnbound in interface Asker
      Overrides:
      askUnbound in class BaseAsker
      Returns:
      an unbound object that should be able to be bound to a value of the type in the input's question, or problems if it failed
    • ask

      public nz.org.riskscape.problem.ResultOrProblems<nz.org.riskscape.wizard.Answer.Response> ask(AskRequest input)
      Description copied from class: BaseAsker

      Get a bound value from the user - note that the response's original input is returned from BaseAsker.askUnbound(AskRequest). This is partly here because the original API exposed this method on the interface, and keeping this method here keeps the refactoring/change noise down to a minimum while allowing the interface to change in the way we want to preserve the right amount of encapsulation

      Specified by:
      ask in class BaseAsker