88 lines
3.2 KiB
Java
88 lines
3.2 KiB
Java
package de.jeyp91.openligadb;
|
|
|
|
import de.jeyp91.BaseMatch;
|
|
import de.jeyp91.tippliga.TLWMatch;
|
|
import org.json.simple.JSONArray;
|
|
import org.json.simple.JSONObject;
|
|
import java.util.regex.*;
|
|
|
|
/**
|
|
*
|
|
*/
|
|
public class OpenLigaDBMatch extends BaseMatch {
|
|
|
|
private final int RESULT_TYPE_ENDRESULT = 2;
|
|
|
|
private Integer season = null;
|
|
private int matchId;
|
|
private int leagueId;
|
|
private boolean matchIsFinished;
|
|
|
|
public OpenLigaDBMatch(JSONObject json) {
|
|
this.matchId = Integer.parseInt(json.get("MatchID").toString());
|
|
this.season = getSeasonFromLeageName(json.get("LeagueName").toString());
|
|
this.leagueId = Integer.parseInt(json.get("LeagueId").toString());
|
|
this.teamIdHome = Integer.parseInt(((JSONObject) json.get("Team1")).get("TeamId").toString());
|
|
this.teamIdGuest = Integer.parseInt(((JSONObject) json.get("Team2")).get("TeamId").toString());
|
|
for(int i = 0; i < ((JSONArray) json.get("MatchResults")).size(); i++) {
|
|
if(Integer.parseInt((((JSONObject) ((JSONArray) json.get("MatchResults")).get(i)).get("ResultTypeID")).toString()) == RESULT_TYPE_ENDRESULT) {
|
|
this.goalsHome = Integer.parseInt(((JSONObject) ((JSONArray) json.get("MatchResults")).get(i)).get("PointsTeam1").toString());
|
|
this.goalsGuest = Integer.parseInt(((JSONObject) ((JSONArray) json.get("MatchResults")).get(i)).get("PointsTeam2").toString());
|
|
}
|
|
}
|
|
this.matchday = Integer.parseInt(((JSONObject) json.get("Group")).get("GroupOrderID").toString());
|
|
this.matchIsFinished = (Boolean) json.get("MatchIsFinished");
|
|
this.matchDatetime = (String) json.get("MatchDateTime");
|
|
}
|
|
|
|
private int getSeasonFromLeageName(String leagueName) {
|
|
Pattern p = Pattern.compile("\\d*/\\d*");
|
|
Matcher m = p.matcher(leagueName);
|
|
m.find();
|
|
String seasonString = m.group();
|
|
p = Pattern.compile("\\d+");
|
|
m = p.matcher(seasonString);
|
|
Integer season = null;
|
|
while(m.find()) {
|
|
season = Integer.parseInt(m.group());
|
|
}
|
|
return season < 100 ? season + 2000 : season;
|
|
}
|
|
|
|
public boolean isSameMatch(TLWMatch compareMatch) {
|
|
if(this.getSeason()!= compareMatch.getSeason()) {
|
|
return false;
|
|
}
|
|
if(this.getMatchday() != compareMatch.getMatchday()) {
|
|
return false;
|
|
}
|
|
if(this.getTeamIdHome() != compareMatch.getTeamIdHome()) {
|
|
return false;
|
|
}
|
|
if(this.getTeamIdGuest() != compareMatch.getTeamIdGuest()) {
|
|
return false;
|
|
}
|
|
String thisDateTime = this.getMatchDateTime().replace("T", " ");
|
|
String tempDateTime = compareMatch.getMatchDateTime().replace("T", " ");
|
|
if(!tempDateTime.equals(thisDateTime)) {
|
|
return false;
|
|
}
|
|
if(this.goalsHome != compareMatch.getGoalsHome() ||
|
|
this.goalsGuest != compareMatch.getGoalsGuest()) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
public Integer getSeason() {
|
|
return this.season;
|
|
}
|
|
|
|
public Integer getMatchId() {
|
|
return this.matchId;
|
|
}
|
|
|
|
public boolean getMatchIsFinished() {
|
|
return this.matchIsFinished;
|
|
}
|
|
} |