package main;
import java.util.ArrayList;
import java.util.List;
public class ChampionshipManager {
private static ChampionshipManager instance;
private List drivers;
private List races;
private static int totalDrivers = 0;
private static int totalRaces = 0;
private ChampionshipManager() {
drivers = new ArrayList<>();
races = new ArrayList<>();
}
public static ChampionshipManager getInstance() {
if (instance == null) {
instance = new ChampionshipManager();
}
return instance;
}
public void registerDriver(Driver driver) {
drivers.add(driver);
totalDrivers++;
}
public void addRaceResult(RallyRaceResult result) {
races.add(result);
totalRaces++;
}
public List getDriverStandings() {
drivers.sort((d1, d2) -> d2.getPoints() - d1.getPoints());
return drivers;
}
public static Driver getLeadingDriver() {
if (instance == null || instance.drivers.isEmpty()) {
return null;
}
return instance.getDriverStandings().get(0);
}
public static int getTotalChampionshipPoints() {
if (instance == null) {
return 0;
}
return instance.drivers.stream().mapToInt(Driver::getPoints).sum();
}
public static int getTotalDrivers() {
return totalDrivers;
}
public static int getTotalRaces() {
return totalRaces;
}
public List getRaces() {
return races;
}
}