ProjectAres/PGM/src/main/java/tc/oc/pgm/countdowns/MultiCountdownContext.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);
}
}