RemoveUserScreenProvider.java

package com.github.quizclash.application.screen.provider;

import com.github.quizclash.application.screen.ScreenFactory;
import com.github.quizclash.application.screen.menu.MenuCreator;
import com.github.quizclash.domain.Repository;
import com.github.quizclash.domain.User;

import java.util.List;

public class RemoveUserScreenProvider implements ScreenProvider {
  private final Repository repository;
  private final ScreenFactory screenFactory;
  private ScreenProviderType nextScreenProviderType;

  public RemoveUserScreenProvider(Repository repository, ScreenFactory screenFactory) {
    this.repository = repository;
    this.screenFactory = screenFactory;
  }

  @Override
  public void execute() {
    List<User> users = this.repository.getUserRepository().getUsers();
    MenuCreator menuCreator = new MenuCreator("Which user do you want to remove?",
        users.toArray(new User[0]), screenFactory);
    int userToRemove = menuCreator.displayAndGetSelection();
    this.repository.getUserRepository().removeUser(users.get(userToRemove - 1));
    this.nextScreenProviderType = ScreenProviderType.USER_MENU;
  }

  public ScreenProviderType getNextScreenProviderType() {
    return this.nextScreenProviderType;
  }
}