Files
tlw-database-tool/src/main/java/de/jeyp91/teamidmatcher/TeamIDMatcher.java
T
2025-01-26 23:01:35 +01:00

75 lines
2.5 KiB
Java

package de.jeyp91.teamidmatcher;
import com.google.common.collect.HashBiMap;
import de.jeyp91.ResourceProvider;
import de.jeyp91.StatusHolder;
import de.jeyp91.apifootball.APIFootballMatch;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class TeamIDMatcher {
private static HashBiMap<Integer, Integer> ids = null;
private static final Logger logger = LoggerFactory.getLogger(TeamIDMatcher.class);
private static JSONArray teams;
private static boolean init = false;
public static final int HOME = 0;
public static final int GUEST = 1;
private static void initBiMap() {
if(!init) {
ids = HashBiMap.create();
teams = ResourceProvider.getTeamIDMatcherConfig();
for (Object team : teams) {
int tippligaID = ((Long) ((JSONObject) team).get("tippligaID")).intValue();
int apiFootballID = ((Long) ((JSONObject) team).get("apiFootballID")).intValue();
ids.put(tippligaID, apiFootballID);
}
init = true;
}
}
public static Integer getApiFootballIdFromTippligaId(int id) {
initBiMap();
if(ids.containsKey(id)) {
return ids.get(id);
} else {
logger.error("Tippliga ID: " + id + " not in ID Matcher.");
StatusHolder.setError();
return null;
}
}
public static Integer getTippligaIdFromApiFootballId(APIFootballMatch match, int homeguest) {
Integer apiFootballId = homeguest == HOME ? match.getTeamIdHome() : match.getTeamIdGuest();
Integer tlwId = null;
if(apiFootballId == null) return null;
initBiMap();
if(ids.inverse().containsKey(apiFootballId)) {
tlwId = ids.inverse().get(apiFootballId);
} else {
String teamname = homeguest == HOME ? match.getTeamNameHome() : match.getTeamNameGuest();
logger.error("Could not find id " + apiFootballId + " for " + teamname);
StatusHolder.setError();
}
return tlwId;
}
public static String getTeamNameFromTippligaId(Integer id) {
initBiMap();
String name = "";
for(Object team : teams) {
int tippligaID = ((Long)((JSONObject) team).get("tippligaID")).intValue();
if(id == tippligaID) {
name = (((JSONObject) team).get("teamname")).toString();
break;
}
}
return name;
}
}