package FF; /* * A driver for the Simple Fantasy Football object model. * * This driver assumes that each class has a name attribute (it uses setName). * It also assumes that each class overrides the toString function. I recommend * making the toString function output the name of the class and the name of the * other objects it is linked to. Here is the code from my Lineup class: * private String name; String getName() { return name; } void setName(String n) { name = n; } public String toString () { String s = "Lineup: "+ name + " " + team.getName() + " "; for (NFLPlayer t : nflPlayers) { s += t.getName() + " "; } return s; } */ public class Driver { public static void main(String[] args) { try { League league1 = new League(); Team team1 = new Team(league1); Team team2 = new Team(league1); league1.setName("L1"); team1.setName("T1"); team2.setName("T2"); System.out.println(league1); Lineup lineup1 = new Lineup(); lineup1.setTeam(team1); Lineup lineup2 = new Lineup(); lineup2.setTeam(team1); Lineup lineup3 = new Lineup(); lineup3.setTeam(team2); Lineup lineup4 = new Lineup(); lineup4.setTeam(team2); lineup1.setName("W1"); lineup2.setName("W2"); lineup3.setName("W3"); lineup4.setName("W4"); System.out.println(team1); System.out.println(team2); System.out.println(lineup1); System.out.println(lineup2); System.out.println(lineup3); System.out.println(lineup4); // test a change, move lineup3 from team2 to team1 lineup3.setTeam(team1); System.out.println("after move lineup3 to team1"); System.out.println(team1); System.out.println(team2); System.out.println(lineup1); System.out.println(lineup2); System.out.println(lineup3); System.out.println(lineup4); NFLPlayer p1 = new NFLPlayer(); NFLPlayer p2 = new NFLPlayer(); NFLPlayer p3 = new NFLPlayer(); NFLPlayer p4 = new NFLPlayer(); NFLPlayer p5 = new NFLPlayer(); lineup1.addNflPlayer(p1); lineup1.addNflPlayer(p2); lineup1.addNflPlayer(p3); lineup2.addNflPlayer(p2); lineup2.addNflPlayer(p3); lineup2.addNflPlayer(p4); lineup3.addNflPlayer(p3); lineup3.addNflPlayer(p4); lineup3.addNflPlayer(p5); lineup4.addNflPlayer(p4); lineup4.addNflPlayer(p5); lineup4.addNflPlayer(p1); p1.setName("P1"); p2.setName("P2"); p3.setName("P3"); p4.setName("P4"); p5.setName("P5"); System.out.println("After adding players:"); System.out.println(lineup1); System.out.println(lineup2); System.out.println(lineup3); System.out.println(lineup4); System.out.println(p1); System.out.println(p2); System.out.println(p3); System.out.println(p4); System.out.println(p5); // test a change, remove p1 from W4 lineup4.removeNflPlayer(p1); System.out.println("after remove p1 from W4"); System.out.println(lineup1); System.out.println(lineup2); System.out.println(lineup3); System.out.println(lineup4); System.out.println(p1); System.out.println(p2); System.out.println(p3); System.out.println(p4); System.out.println(p5); // test a change, add p5 to w1 lineup1.addNflPlayer(p5); System.out.println("after add p5 to W1"); System.out.println(lineup1); System.out.println(lineup2); System.out.println(lineup3); System.out.println(lineup4); System.out.println(p1); System.out.println(p2); System.out.println(p3); System.out.println(p4); System.out.println(p5); // try to violate the precondition NFLPlayer p6 = new NFLPlayer(); NFLPlayer p7 = new NFLPlayer(); NFLPlayer p8 = new NFLPlayer(); lineup1.addNflPlayer(p4); lineup1.addNflPlayer(p6); lineup1.addNflPlayer(p7); lineup1.addNflPlayer(p8); // this statement should trigger exception } catch (Exception e) { e.printStackTrace(); } } }