Methods Summary |
---|
public void | addCharacterListener(CharacterListener cl)
handler.addCharacterListener(cl);
|
public int | getPauseTime()
return (int) (Math.max(1000, 5000 * random.nextDouble()));
|
public void | nextCharacter()
handler.fireNewCharacter(this,
(int) chars[random.nextInt(chars.length)]);
|
public void | removeCharacterListener(CharacterListener cl)
handler.removeCharacterListener(cl);
|
public void | run()
try {
lock.lock();
while (true) {
try {
if (done) {
cv.await();
} else {
nextCharacter();
cv.await(getPauseTime(), TimeUnit.MILLISECONDS);
}
} catch (InterruptedException ie) {
return;
}
}
} finally {
lock.unlock();
}
|
public void | setDone(boolean b)
try {
lock.lock();
done = b;
if (!done) cv.signal();
} finally {
lock.unlock();
}
|