package de.jeyp91.apifootball; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import java.util.ArrayList; public class APIFootballMatchesProvider { APIFootballConnector conn; public APIFootballMatchesProvider(int season) { this.conn = APIFootballConnector.getAPIFootballConnectorInstance(season); } public ArrayList getAPIFootballMatchesFromConfig(JSONObject matchdayConfig) { boolean ko = false; try { ko = (boolean) matchdayConfig.get("ko"); } catch (Exception e) { // Nothing to do here } ArrayList apiFootballMatches = new ArrayList<>(); for (Object singleConfigObject : (JSONArray) matchdayConfig.get("matchesConfig")) { JSONObject singleConfig = (JSONObject) singleConfigObject; String type = (String) singleConfig.get("type"); boolean showTable = false; switch (type) { case "AllMatchesOfMatchday": int matchesLeague = ((Long) singleConfig.get("matchesLeague")).intValue(); int leagueMatchday = ((Long) singleConfig.get("leagueMatchday")).intValue(); ArrayList matches = conn.getMatchDataByLeagueAndMatchday(matchesLeague, leagueMatchday); try { showTable = (boolean) singleConfig.get("showTable"); } catch (Exception e) { e.printStackTrace(); } boolean finalShowTable = showTable; boolean finalKo = ko; matches.forEach(apiFootballMatch -> { apiFootballMatch.setShowTable(finalShowTable); apiFootballMatch.setKoMatch(finalKo); }); apiFootballMatches.addAll(matches); break; case "SingleMatch": int matchLeague = ((Long) singleConfig.get("matchLeague")).intValue(); int matchId = ((Long) singleConfig.get("matchId")).intValue(); APIFootballMatch match = conn.getMatchDataByLeagueAndMatchID(matchLeague, matchId); showTable = (boolean) singleConfig.get("showTable"); match.setShowTable(showTable); match.setKoMatch(ko); apiFootballMatches.add(match); break; } } return apiFootballMatches; } }