CLIScreenFactory.java

package com.github.quizclash.plugin.cli.screen;

import com.github.quizclash.application.screen.*;
import com.github.quizclash.domain.Displayable;
import com.github.quizclash.plugin.cli.CLIWindowManager;

import java.util.List;

public class CLIScreenFactory implements ScreenFactory {
  final CLIWindowManager cliWindow;

  public CLIScreenFactory(CLIWindowManager cliWindow) {
    this.cliWindow = cliWindow;
  }

  @Override
  public InformationScreen createInformationScreen(String screenName, List<String> lines) {
    return new CLIInformationScreen(screenName, lines, cliWindow);
  }

  @Override
  public InformationScreen createInformationScreen(String screenName,
                                                   List<String> lines,
                                                   boolean isBlocking) {
    return new CLIInformationScreen(screenName, lines, isBlocking, cliWindow);
  }

  @Override
  public NumberInputScreen createNumberInputScreen(String screenName, String inputRequest) {
    return new CLINumberInputScreen(screenName, inputRequest, cliWindow);
  }

  @Override
  public OptionScreen createOptionScreen(String screenName,
                                         List<? extends Displayable> displayableList) {
    return new CLIOptionScreen(screenName, displayableList, cliWindow);
  }

  @Override
  public TextInputScreen createTextInputScreen(String screenName, String inputRequest) {
    return new CLITextInputScreen(screenName, inputRequest, cliWindow);
  }
}