Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider dc25875d rédigé par Aram NISO's avatar Aram NISO
Parcourir les fichiers

add some necessary guards for mission package

parent 9c8b68f8
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -18,6 +18,10 @@ public class ConcreteMissionFactory implements MissionFactory { ...@@ -18,6 +18,10 @@ public class ConcreteMissionFactory implements MissionFactory {
*/ */
@Override @Override
public Mission createMissionCaptureContinents(Continent continent1, Continent continent2) { public Mission createMissionCaptureContinents(Continent continent1, Continent continent2) {
if (continent1 == null || continent2 == null) {
throw new IllegalArgumentException("Continents cannot be null");
}
return new MissionCaptureContinents(continent1, continent2); return new MissionCaptureContinents(continent1, continent2);
} }
...@@ -28,6 +32,10 @@ public class ConcreteMissionFactory implements MissionFactory { ...@@ -28,6 +32,10 @@ public class ConcreteMissionFactory implements MissionFactory {
*/ */
@Override @Override
public Mission createMissionCaptureTerritories(int nbTerritoires) { public Mission createMissionCaptureTerritories(int nbTerritoires) {
if (nbTerritoires <= 0) {
throw new IllegalArgumentException("Number of territories must be positive");
}
return new MissionCaptureTerritories(nbTerritoires); return new MissionCaptureTerritories(nbTerritoires);
} }
...@@ -38,6 +46,10 @@ public class ConcreteMissionFactory implements MissionFactory { ...@@ -38,6 +46,10 @@ public class ConcreteMissionFactory implements MissionFactory {
*/ */
@Override @Override
public Mission createMissionDestroyOpponent(Color target) { public Mission createMissionDestroyOpponent(Color target) {
if (target == null) {
throw new IllegalArgumentException("Target color cannot be null");
}
return new MissionDestroyOpponent(target); return new MissionDestroyOpponent(target);
} }
} }
...@@ -26,6 +26,10 @@ public class MissionCaptureContinents extends Mission { ...@@ -26,6 +26,10 @@ public class MissionCaptureContinents extends Mission {
*/ */
protected MissionCaptureContinents(Continent continent1, Continent continent2) { protected MissionCaptureContinents(Continent continent1, Continent continent2) {
super("Vous devez conquerir les continents suivants : " + continent1.getName() + " et " + continent2.getName() + "."); super("Vous devez conquerir les continents suivants : " + continent1.getName() + " et " + continent2.getName() + ".");
if (continent1 == null || continent2 == null) {
throw new IllegalArgumentException("Continent parameters cannot be null");
}
this.continent1 = continent1; this.continent1 = continent1;
this.continent2 = continent2; this.continent2 = continent2;
} }
...@@ -38,13 +42,12 @@ public class MissionCaptureContinents extends Mission { ...@@ -38,13 +42,12 @@ public class MissionCaptureContinents extends Mission {
*/ */
@Override @Override
public boolean isSuccessful(Player playerDontOnCheckVictory, Set<Player> players) { public boolean isSuccessful(Player playerDontOnCheckVictory, Set<Player> players) {
if (playerDontOnCheckVictory != null) { if (playerDontOnCheckVictory == null) {
if (players != null) { throw new IllegalArgumentException("Player parameter cannot be null");
if (players.size() > 0) { }
return (playerDontOnCheckVictory.getContinentsControls().contains(continent1) if (players != null && players.size() > 0) {
&& playerDontOnCheckVictory.getContinentsControls().contains(continent2)); return (playerDontOnCheckVictory.getContinentsControls().contains(continent1)
} && playerDontOnCheckVictory.getContinentsControls().contains(continent2));
}
} }
return false; return false;
......
...@@ -24,6 +24,10 @@ public class MissionCaptureTerritories extends Mission { ...@@ -24,6 +24,10 @@ public class MissionCaptureTerritories extends Mission {
*/ */
protected MissionCaptureTerritories(int nbTerritories) { protected MissionCaptureTerritories(int nbTerritories) {
super("Vous devez conquerir " + nbTerritories + " territoires."); super("Vous devez conquerir " + nbTerritories + " territoires.");
if (nbTerritories <= 0) {
throw new IllegalArgumentException("The number of territories to capture must be positive.");
}
this.nbTerritories = nbTerritories; this.nbTerritories = nbTerritories;
} }
...@@ -32,14 +36,13 @@ public class MissionCaptureTerritories extends Mission { ...@@ -32,14 +36,13 @@ public class MissionCaptureTerritories extends Mission {
*/ */
@Override @Override
public boolean isSuccessful(Player playerDontOnCheckVictory, Set<Player> players) { public boolean isSuccessful(Player playerDontOnCheckVictory, Set<Player> players) {
if (Objects.nonNull(playerDontOnCheckVictory)) { if (playerDontOnCheckVictory == null) {
if (Objects.nonNull(players)) { throw new IllegalArgumentException("The player to check for victory cannot be null.");
if (players.size() > 0) { }
return playerDontOnCheckVictory.nbOwnedTerritories() >= nbTerritories; if (players == null || players.isEmpty()) {
} throw new IllegalArgumentException("The set of players cannot be null or empty.");
}
} }
return false; return playerDontOnCheckVictory.nbOwnedTerritories() >= nbTerritories;
} }
} }
...@@ -45,23 +45,18 @@ public class MissionDestroyOpponent extends Mission { ...@@ -45,23 +45,18 @@ public class MissionDestroyOpponent extends Mission {
*/ */
@Override @Override
public boolean isSuccessful(Player playerDontOnCheckVictory, Set<Player> players) { public boolean isSuccessful(Player playerDontOnCheckVictory, Set<Player> players) {
if (playerDontOnCheckVictory != null) { if (playerDontOnCheckVictory == null || players == null || players.isEmpty()) {
if (players != null) { return false;
if (!players.isEmpty()) { }
// Check if the target player is eliminated // Check if the target player is eliminated
for (Player j : players) { if (target != null) {
if (target.equals(j.getColor())) { for (Player j : players) {
return (j.nbOwnedTerritories() == 0); if (target.equals(j.getColor())) {
} return (j.nbOwnedTerritories() == 0);
}
// Check if the player conquers 25 territories
return playerDontOnCheckVictory.getPossessedTerritories().size() >= CONQUERING_TERRITORIES;
} else {
return false;
} }
} else {
return false;
} }
} else return false; }
// Check if the player conquers 25 territories
return playerDontOnCheckVictory.getPossessedTerritories().size() >= CONQUERING_TERRITORIES;
} }
} }
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter