/**
* class Responder merepresentasikan sebuah respon-generator object.
* Digunakan untuk generate sebuah respon otomatis ke input string.
*
* @author Daffa Amanullah Setyawan
* @version 0.1 11 November 2020
*/
import java.util.*;
public class Responder
{
private Random randomGenerator;
private ArrayList<String> defaultResponses;
private HashMap<String, String> responseMap;
/**
* Membuat responder.
*/
public Responder()
{
defaultResponses = new ArrayList<String>();
responseMap = new HashMap<String, String>();
fillResponses();
fillDefaultResponses();
randomGenerator = new Random();
}
/**
* Generate sebuah respon.
* @return Sebuah string yang seharusnya ditampilkan sebagai respon.
*/
public String generateResponse(HashSet<String> words)
{
for(String word : words)
{
String response = responseMap.get(word);
if(response != null)
{
return response;
}
}
return pickDefaultResponse();
}
/**
* Build up a list of default responses from which we can pick one
* if we don\'t know what else to say.
*/
private void fillResponses()
{
responseMap.put("hi", "Hello, It is a pleasure to meet you.");
responseMap.put("you?", "I am a bot, here to help you");
responseMap.put("hello", "Hi there! How are you today?");
responseMap.put("good", "I see that you are well.");
responseMap.put("happy", "Wonderful, I also happy to hear that.");
responseMap.put("bad", "Something bugging your mind?");
responseMap.put("nothing", "I see, but please remember that I will always open to you.");
responseMap.put("sad", "I hope yo can get better.");
responseMap.put("thank", "You are welcome.");
}
private void fillDefaultResponses()
{
defaultResponses.add("Sorry I can\'t understand what you are saying.");
}
private String pickDefaultResponse()
{
int index = randomGenerator.nextInt(defaultResponses.size());
return defaultResponses.get(index);
}
}