}
// Request refiring after a certain amount of time specified
// by the <i>delay<i> parameter.
Director director = getDirector();
Token[] values = { new DoubleToken(data),
new StringToken(destination), new StringToken(to),
new IntToken(hops + 1) };
double delayTime = ((DoubleToken) delay.getToken())
.doubleValue();
Time time = director.getModelTime().add(delayTime);
if (_receptions == null) {
_receptions = new HashMap();
}
Double timeDouble = Double.valueOf(time.getDoubleValue());
String[] labels = { "data", "destination", "routeTo", "hops" };
RecordToken result = new RecordToken(labels, values);
_receptions.put(timeDouble, result);
director.fireAt(this, time);
if (multi) {
Token[] values2 = { new DoubleToken(data),
new StringToken(destination), new StringToken(to2),
new IntToken(hops + 1) };
if (_receptions == null) {
_receptions = new HashMap();