Add javadoc to client package (no subpackage)

This commit is contained in:
Quentin Legot 2021-12-09 14:48:27 +01:00
parent 4062f43c40
commit 94cd0bb030
5 changed files with 58 additions and 1 deletions

View File

@ -50,6 +50,17 @@ public class App extends Application {
} }
} }
/**
* Parse players arguments and create a new instance of Game
* @throws IllegalArgumentException when given argument is unknown
* @throws InvocationTargetException when the creation of the player throw an exception
* @throws NoSuchMethodException when constructor with given parameter in {@link Class#getConstructor(Class[])}
* doesn't exist
* @throws InstantiationException when the instanciation of the player is impossible (like when class is abstract),
* is probably never called
* @throws IllegalAccessException when the instanciation of thr player is impossible (like a private constructor),
* is probably never called
*/
public static void startGame() throws IllegalArgumentException, InvocationTargetException, NoSuchMethodException, public static void startGame() throws IllegalArgumentException, InvocationTargetException, NoSuchMethodException,
InstantiationException, IllegalAccessException { InstantiationException, IllegalAccessException {
List<Player> players = parsePlayers(); List<Player> players = parsePlayers();
@ -80,6 +91,17 @@ public class App extends Application {
viewManager.run(); viewManager.run();
} }
/**
* Parse players arguments and create instances for each player
* @throws IllegalArgumentException when given argument is unknown
* @throws InvocationTargetException when the creation of the player throw an exception
* @throws NoSuchMethodException when constructor with given parameter in {@link Class#getConstructor(Class[])}
* doesn't exist
* @throws InstantiationException when the instanciation of the player is impossible (like when class is abstract),
* is probably never called
* @throws IllegalAccessException when the instanciation of thr player is impossible (like a private constructor),
* is probably never called
*/
public static List<Player> parsePlayers() throws IllegalArgumentException, NoSuchMethodException, public static List<Player> parsePlayers() throws IllegalArgumentException, NoSuchMethodException,
InvocationTargetException, InstantiationException, IllegalAccessException { InvocationTargetException, InstantiationException, IllegalAccessException {
List<Player> playerList = new ArrayList<>(); List<Player> playerList = new ArrayList<>();
@ -129,6 +151,17 @@ public class App extends Application {
return playerList; return playerList;
} }
/**
* create a new instance of the player
* @throws IllegalArgumentException when given argument is unknown (probably never called in production)
* @throws InvocationTargetException when the creation of the player throw an exception
* @throws NoSuchMethodException when constructor with given parameter in {@link Class#getConstructor(Class[])}
* doesn't exist
* @throws InstantiationException when the instanciation of the player is impossible (like when class is abstract),
* is probably never called
* @throws IllegalAccessException when the instanciation of thr player is impossible (like a private constructor),
* is probably never called
*/
private static Player createNewPlayer(Class<? extends AbstractPlayer> playerClass, ClassPlayer playerType, private static Player createNewPlayer(Class<? extends AbstractPlayer> playerClass, ClassPlayer playerType,
int playerListSize) throws NoSuchMethodException, InvocationTargetException, int playerListSize) throws NoSuchMethodException, InvocationTargetException,
InstantiationException, IllegalAccessException { InstantiationException, IllegalAccessException {
@ -136,7 +169,12 @@ public class App extends Application {
.newInstance(playerListSize, null, playerType); .newInstance(playerListSize, null, playerType);
} }
public static Class<? extends AbstractView> parseView() { /**
* Parse the first argument given by user to know the view to use (Terminal or Window)
* @return The class of the View to use
* @throws IllegalArgumentException when given argument is unknown or no argument is given by user
*/
public static Class<? extends AbstractView> parseView() throws IllegalArgumentException {
Class<? extends AbstractView> clazz; Class<? extends AbstractView> clazz;
if(!argsList.isEmpty()) { if(!argsList.isEmpty()) {
if(argsList.get(0).equals("terminal")) { if(argsList.get(0).equals("terminal")) {

View File

@ -3,6 +3,9 @@ package fr.lnl.game.client;
import fr.lnl.game.client.view.View; import fr.lnl.game.client.view.View;
import fr.lnl.game.server.games.player.Player; import fr.lnl.game.server.games.player.Player;
/**
* Store a view per player
*/
public record ClientPlayer(Player serverPlayer, View view) { public record ClientPlayer(Player serverPlayer, View view) {
public Player getServerPlayer() { public Player getServerPlayer() {

View File

@ -3,9 +3,17 @@ package fr.lnl.game.client;
import fr.lnl.game.client.view.View; import fr.lnl.game.client.view.View;
import fr.lnl.game.server.games.player.Player; import fr.lnl.game.server.games.player.Player;
/**
* Used as Lambda expression to instantiate a {@link View} per {@link Player} stored in {@link ClientPlayer}
*/
@FunctionalInterface @FunctionalInterface
public interface ViewLambda { public interface ViewLambda {
/**
* A lambda create an anonymous class which implements this interface
* @param player an instance of {@link Player} to store in {@link View}
* @return an instance of view (depending on the first argument when launching the program)
*/
View createViewLambda(Player player); View createViewLambda(Player player);
} }

View File

@ -0,0 +1,4 @@
/**
* Client package
*/
package fr.lnl.game.client;

View File

@ -0,0 +1,4 @@
/**
* Server package
*/
package fr.lnl.game.server;