if (_rate[i] == -1) {
arguments[i] = port.get(0);
} else {
Token[] tokens = port.get(0, _rate[i]);
arguments[i] = new ArrayToken(port.getType(), tokens);
}
i++;
}
Token result = functionValue.apply(arguments);
if (_outputRate == -1) {
output.broadcast(result);
} else {
// FIXME: Check size.
ArrayToken resultArray = (ArrayToken) result;
output.broadcast(resultArray.arrayValue(), resultArray.length());
}
}