Create a base class called Entity . The Entity class must hold the common attributes and behaviors from UML. Entity Class UML Entity -id: long -name: String -------------------------------- -Enity()...



Create a base class called Entity. The Entity class must hold the common attributes and behaviors from UML.


Entity Class UML


Entity



-id: long


-name: String


--------------------------------


-Enity()


+Entity(id: long, name: String)


+getId(): long


+getName(); String


+toString(): String





Complete the code for the Player and Team classes
. Each class must derive from the Entity class.



Refactor the Game class to inherit from this new Entity class.


Every team and player must have a unique name by searching for the supplied name prior to adding the new instance.Use the iterator pattern in the addTeam() and addPlayer() methods.



Code that I have, not sure if I have it correct. Thank you



Entity Class


package com.gamingroom;


public class Entity {


//Private attributes
private long id;
private String name;




//Default constructor
public Entity() {


}


//Constructor with an identifier and name
public Entity(long id, String name) {
this();
this.id = id;
this.name = name;
}


//@return the id
public long getId() {
return id;
}


//@return the name
public String getName() {
return name;
}


@Override
public String toString() {
return "Entity [id=" + id + ", name=" + name + "]";
}
}



Game class


package com.gamingroom;


import java.util.ArrayList;


//Extends Entity
public class Game extends Entity{
long id;
String name;


//Hide the default constructor to prevent creating empty instances.




//A list of the active teams
private List teams = new ArrayList();


private Game() {
}


//Constructor with an identifier and name


public Game(long id, String name) {
this();
this.id = id;
this.name = name;
}


//@return the id


public long getId() {
return id;
}


//@return the name


public String getName() {
return name;
}


//Uses iterator pattern to find existing team with same name or adds unique named team to list


public Team addTeam(String name) {


// a local team instance
Team team = null;


// Instance iterator
Iterator teamsIterator = teams.iterator();


// Iterate over teams list
while (teamsIterator.hasNext()) {


// Set local Team var to next item in list
Team teamInstance = teamsIterator.next();


// Does team name already exist?
if (teamInstance.getName().equalsIgnoreCase(name)) {
// If team name already exists, return the team instance
team = teamInstance;
} else {
// else add the team to the teams list
teams.add(team);
}
}


return team;
}


@Override
public String toString() {


return "Game [id=" + id + ", name=" + name + "]";
}


}



Team class


package com.gamingroom;


import java.util.ArrayList;




//Extends Entity
public class Team extends Entity {
long id;
String name;


//List of active teams
private List players = new ArrayList();


// Constructor with an identifier and name


public Team(long id, String name) {
this.id = id;
this.name = name;
}


//@return the id


public long getId() {
return id;
}


//@return the name


public String getName() {
return name;
}


//Uses iterator pattern to find existing player with same name or  adds unique named player to list


public Player addPlayer(String name) {


// a local teams instance
Player player = null;


// Instance iterator
Iterator playersIterator = players.iterator();


// Iterate over players list
while (playersIterator.hasNext()) {


// Set local Player var to next item in list
Player playerInstance = playersIterator.next();


// Does player name already exist?
if (playerInstance.getName().equalsIgnoreCase(name)) {
// If player name already exists, return the player instance
player = playerInstance;
} else {
// else add the player to the players list
players.add(player);
}
}


return player;
}


@Override
public String toString() {
return "Team [id=" + id + ", name=" + name + "]";
}
}



Player class


package com.gamingroom;


//Extends Entity
public class Player extends Entity {
long id;
String name;


//Constructor with an identifier and name


public Player(long id, String name) {
this.id = id;
this.name = name;
}


//@return the id


public long getId() {
return id;
}


//@return the name


public String getName() {
return name;
}


@Override
public String toString() {
return "Player [id=" + id + ", name=" + name + "]";
}
}



Program Driver


package com.gamingroom;


//Application start-up program


public class ProgramDriver {


// The one-and-only main() method @param args command line arguments


public static void main(String[] args) {


//obtain reference to the singleton instance
GameService service = GameService.getInstance();



System.out.println("\nAbout to test initializing game data...");


// initialize with some game data
Game game1 = service.addGame("Game #1");
System.out.println(game1);
Game game2 = service.addGame("Game #2");
System.out.println(game2);


// use another class to prove there is only one instance
SingletonTester tester = new SingletonTester();
tester.testSingleton();
}
}



Singleton tester



package com.gamingroom;


//A class to test a singleton's behavior


public class SingletonTester {


public void testSingleton() {


System.out.println("\nAbout to test the singleton...");


//Obtain local reference to the singleton instance
GameService service = GameService.getInstance();


// a simple for loop to print the games
for (int i = 0; i < service.getgamecount();="" i++)="">
System.out.println(service.getGame(i));
}


}


}

Jun 02, 2022
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here