import java.util.*;
/**
* The responder class represents a response-generator object.
* It is used to generate an automatic response to an input string.
*
* @author Muhammad Bagus Istighfar
* @version 0.1 - 11 November 2020
*/
public class Responder
{
private Random randomGenerator;
private ArrayList<String> defaultResponses;
private HashMap<String, String> responseMap;
/**
* Create a responder.
*/
public Responder()
{
defaultResponses = new ArrayList<String>();
responseMap = new HashMap<String, String>();
fillResponses();
fillDefaultResponses();
randomGenerator = new Random();
}
/**
* Generate a response.
* @return A string that should be displayed as the response.
*/
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("halo", "Haloo!!!" + "Bagaimana kabarmu?");
responseMap.put("buruk", "Apakah kamu sakit? :(");
responseMap.put("sedih", "Semoga harimu lekas membaik ya!" + "Jadikan harimu sebagai pembelajaran");
responseMap.put("baik", "Wawww, aku juga ikut senang.");
responseMap.put("tidak", "oh, okee.");
responseMap.put("kamu", "Aku ChatSkuy, yang akan menemani hari - harimu");
responseMap.put("kasih", "Sudah menjadi tugasku");
}
private void fillDefaultResponses()
{
defaultResponses.add("Maaf saya tidak mengerti ");
defaultResponses.add("Coba lagi");
}
private String pickDefaultResponse()
{
int index = randomGenerator.nextInt(defaultResponses.size());
return defaultResponses.get(index);
}
}