package tc.oc.pgm.join;
import java.util.Optional;
import javax.annotation.Nullable;
import tc.oc.pgm.match.Competitor;
import static com.google.common.base.Preconditions.checkNotNull;
public class JoinRequest {
private final Optional<Competitor> competitor;
private final JoinMethod method;
public JoinRequest(JoinMethod method) {
this(method, null);
}
public JoinRequest(JoinMethod method, @Nullable Competitor competitor) {
this.competitor = Optional.ofNullable(competitor);
this.method = checkNotNull(method);
}
public static JoinRequest user(@Nullable Competitor competitor) {
return new JoinRequest(JoinMethod.USER, competitor);
}
public static JoinRequest user() {
return user(null);
}
public JoinMethod method() {
return method;
}
public Optional<Competitor> competitor() {
return competitor;
}
}