File writeMatchXmlFile(final MatchInfo match) { Element root = writeMatchXml(match); File outputFile = createMatchXmlFile(match.getMatchNumber()); deleteExistingFile(outputFile); writeFile(outputFile, new Document(root)); return outputFile; }
@Override public List<TeamResult> fetchTeamResults(final MatchInfo theMatch) { List<MatchInfo> matchCache = Arrays.asList(theMatch); List<TeamInfo> teamCache = theMatch.getTeams(); List<Category> categories = fetchAllScoringCategories(); List<TeamResult> results = new ArrayList<>(); for (TeamInfo theTeam : theMatch.getTeams()) { File inputFile = createTeamResultXmlFile(theMatch.getMatchNumber(), theTeam.getTeamNumber()); if (inputFile.exists()) { results.add(readTeamResultXmlFile(matchCache, teamCache, categories, inputFile)); } else { results.add(new TeamResult(theMatch, theTeam)); } } return results; }
private Element writeMatchXml(final MatchInfo match) { /* example match XML file content <match matchNumber="1"> <alliance color="BLUE" team1="1" team2="2" team3="3" /> <alliance color="RED" team1="4" team2="5" team3="6" /> </match> */ Element rootElm = new Element("match"); rootElm.setAttribute("matchNumber", Integer.toString(match.getMatchNumber())); // Output match results for the blue alliance TeamAlliance alliance = match.getBlueAlliance(); Element allianceElm = new Element("alliance"); allianceElm.setAttribute("color", alliance.getAllianceColor().name()); int counter = 1; for (Integer teamNum : alliance.getTeamNumbers()) { allianceElm.setAttribute("team" + counter, Integer.toString(teamNum)); counter++; } rootElm.addContent(allianceElm); // Output match results for the red alliance alliance = match.getRedAlliance(); allianceElm = new Element("alliance"); allianceElm.setAttribute("color", alliance.getAllianceColor().name()); counter = 1; for (Integer teamNum : alliance.getTeamNumbers()) { allianceElm.setAttribute("team" + counter, Integer.toString(teamNum)); counter++; } rootElm.addContent(allianceElm); return rootElm; }
@Override public List<TeamResult> fetchAllTeamResults() { List<MatchInfo> matchCache = fetchAllMatches(); List<TeamInfo> teamCache = fetchAllTeams(); List<Category> categories = fetchAllScoringCategories(); List<TeamResult> results = new ArrayList<>(); for (MatchInfo theMatch : matchCache) { for (TeamInfo theTeam : theMatch.getTeams()) { File inputFile = createTeamResultXmlFile(theMatch.getMatchNumber(), theTeam.getTeamNumber()); if (inputFile.exists()) { results.add(readTeamResultXmlFile(matchCache, teamCache, categories, inputFile)); } else { results.add(new TeamResult(theMatch, theTeam)); } } } Comparator<TeamResult> byMatchNumber = (e1, e2) -> Integer.compare(e1.getMatch().getMatchNumber(), e2.getMatch().getMatchNumber()); Collections.sort(results, byMatchNumber); return results; }