package tc.oc.pgm.join;
import java.util.Optional;
import tc.oc.pgm.match.Competitor;
public class JoinAllowed implements JoinResult {
private final Optional<? extends Competitor> competitor;
private final boolean rejoin;
private final boolean priorityKick;
protected JoinAllowed(Optional<? extends Competitor> competitor, boolean rejoin, boolean priorityKick) {
this.competitor = competitor;
this.rejoin = rejoin;
this.priorityKick = priorityKick;
}
public static JoinAllowed auto(boolean priorityKick) {
return new JoinAllowed(Optional.empty(), false, priorityKick);
}
public static JoinAllowed force(JoinResult result) {
return new JoinAllowed(result.competitor(), result.isRejoin(), result.priorityKickRequired());
}
@Override
public boolean priorityKickRequired() {
return priorityKick;
}
@Override
public Optional<? extends Competitor> competitor() {
return competitor;
}
@Override
public boolean isRejoin() {
return rejoin;
}
@Override
public boolean isVisible() {
return true;
}
@Override
public boolean isAllowed() {
return true;
}
}