40 lines
992 B
Java
40 lines
992 B
Java
package tc.oc.pgm.countdowns;
|
|
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
import java.util.Optional;
|
|
import java.util.Set;
|
|
import java.util.stream.Stream;
|
|
|
|
import com.google.common.collect.ImmutableList;
|
|
import com.google.common.collect.ImmutableSet;
|
|
|
|
public class MultiCountdownContext extends CountdownContext {
|
|
|
|
protected final Map<Countdown, Runner> runners = new HashMap<>();
|
|
|
|
public Set<Countdown> getAll() {
|
|
return ImmutableSet.copyOf(runners.keySet());
|
|
}
|
|
|
|
@Override
|
|
protected Stream<Runner> runners() {
|
|
return ImmutableList.copyOf(runners.values()).stream();
|
|
}
|
|
|
|
@Override
|
|
protected Optional<Runner> runner(Countdown countdown) {
|
|
return Optional.ofNullable(runners.get(countdown));
|
|
}
|
|
|
|
@Override
|
|
protected void addRunner(Runner runner) {
|
|
runners.put(runner.countdown, runner);
|
|
}
|
|
|
|
@Override
|
|
protected void removeRunner(Runner runner) {
|
|
runners.remove(runner.countdown, runner);
|
|
}
|
|
}
|