TSRJ 2008 Workshop -- Advanced Track Lab - Thursday Morning: Part 1: Design a data representation for a youth soccer league that keeps track of players and their teams. A player's record contains the first and last name; the player's gender; and the assigned team. An team record should specify the name of the team, the name of the coach, the phone number (int), and the assigned players. Part 2: A player meets a new friend - knows only his name, and wants to find out from the league database whether he and his new friend have been assigned to the same team. Help him by designing the method 'sameTeam'. (Assume there are no two players with the same first and last name in the league.) Part 3: The league keeps a list of teams. Before the season they need to make adjustments - moving players from one team to another. Design the method 'movePlayer' that moves a player from one team to another. Part 4: Modify your method to make the move only when the move is legal. The rules are that each team has a minimum number of players and a maximum number of players. We cannot remove a player, if the team would be left with fewer than the minimum umber of players. We cannot add another player to the team that has reached the maximum size. Note: You may want to do some of this exercise on paper - especially designing the class diagram and deciding what are the methods - and their signatures - in each class. (Hint: Always follow the arrows.) It is OK to have the team minimum at 2 and maximum at 4 - for the design purposes.