public ArrayList<MatchScheduling> scheduleSemiFinals() throws SQLException
    {
        ArrayList<MatchScheduling> matches = new ArrayList();

        ArrayList<Team> s1Teams = new ArrayList();
        ArrayList<Team> s2Teams = new ArrayList();




        for (int k = 0; k <= 1; k++)
        {
            int homeTeamId = getById(listByMatchRound(7).get(k).getId()).getHomeTeamId();
            int guestTeamId = getById(listByMatchRound(7).get(k).getId()).getGuestTeamId();

            if (getById(listByMatchRound(7).get(k).getId()).getHomeGoals() > getById(listByMatchRound(7).get(k).getId()).getGuestGoals())
            {
                Team hw = teammgr.getById(homeTeamId);
                s1Teams.add(hw);
            }
            else
            {
                Team gw = teammgr.getById(guestTeamId);
                s1Teams.add(gw);
            }
        }

        for (int k = 2; k <= 3; k++)
        {
            int homeTeamId = getById(listByMatchRound(7).get(k).getId()).getHomeTeamId();
            int guestTeamId = getById(listByMatchRound(7).get(k).getId()).getGuestTeamId();

            if (getById(listByMatchRound(7).get(k).getId()).getHomeGoals() > getById(listByMatchRound(7).get(k).getId()).getGuestGoals())
            {
                Team hw = teammgr.getById(homeTeamId);
                s2Teams.add(hw);
            }
            else
            {
                Team gw = teammgr.getById(guestTeamId);
                s2Teams.add(gw);
            }
        }

        ArrayList<MatchScheduling> semiFinalMatches = new ArrayList();

        /*
         * Round 8 (Semi finals)
         */
        semiFinalMatches.add(new MatchScheduling(8, s1Teams.get(0), s1Teams.get(1)));
        semiFinalMatches.add(new MatchScheduling(8, s2Teams.get(0), s2Teams.get(1)));

        matches.addAll(semiFinalMatches);

        for (MatchScheduling m : semiFinalMatches)
        {
            db.addMatches(m);
        }
        return null;
    }