package com.diodesoftware.scb.agents;
import org.apache.log4j.Logger;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
/**
* Created by IntelliJ IDEA.
* User: Rob
* Date: Apr 20, 2006
* Time: 9:49:02 PM
* To change this template use File | Settings | File Templates.
*/
public class WordPicker {
private static WordPicker instance;
private List dictionary = new ArrayList();
private Random rnd = new Random(System.currentTimeMillis());
private Logger log = Logger.getLogger(WordPicker.class);
public static void init(String dictionaryFile) {
if (instance == null) {
instance = new WordPicker(dictionaryFile);
}
}
public static WordPicker getInstnace() {
return instance;
}
private WordPicker(String dictionaryFile) {
load(dictionaryFile);
}
public String pickWord() {
String word = null;
synchronized (dictionary) {
int pos = rnd.nextInt(dictionary.size());
word = (String) dictionary.get(pos);
}
return word;
}
private void load(String dictionaryFile) {
log.info("Loading Dictonary");
try {
BufferedReader in = new BufferedReader(new FileReader
(dictionaryFile));
while (in.ready()) {
dictionary.add(in.readLine());
}
in.close();
log.debug("Dictionary loaded. Size[" + dictionary.size() + "]");
} catch (Exception e) {
log.error("Error loading dictionary", e);
}
}
}