/**
* This class implements a technical support system. It is
* the top-level class in this project. The support system
* communicates via text input/output in the text terminal.
* This class uses an object of class InputReader to read
* input from the user and an object of class Responder to
* generate responses.
* It contains a loop that repeatedly reads input and
* generates output until the user wants to leave.
*
* @author Daffa Tristan Firdaus
* @version 0.1 (11 November 2020)
*/
import java.util.*;
public class SupportSystem
{
private InputReader reader;
private Responder responder;
/**
* Creates a technical support system.
*/
public SupportSystem()
{
reader = new InputReader();
responder = new Responder();
}
/**
* Start the technical support system. This will print a
* welcome message and enter into a dialog with the user,
* until the user ends the dialog.
*/
public void start()
{
boolean finished = false;
printWelcome();
while(!finished) {
HashSet<String> input = reader.getInput();
if(input.contains("bye")) {
finished = true;
}else {
String response = responder.generateResponse(input);
System.out.println(response);
}
}
printGoodbye();
}
/**
* Print a welcome message to the screen.
*/
private void printWelcome()
{
System.out.println(
"Welcome to the Technical Support System.");
System.out.println();
System.out.println("Please tell us about your problem.");
System.out.println(
"We will assist you with any problem you might have.");
System.out.println(
"Please type \'bye\' to exit our system.");
}
/**
* Print a good-bye message to the screen.
*/
private void printGoodbye()
{
System.out.println("Nice talking to you. Goodbye");
}
}