diff --git a/src/main/java/florizz/command/AddFlowerCommand.java b/src/main/java/florizz/command/AddFlowerCommand.java index 5ea81bdda7..b7df1bd7f3 100644 --- a/src/main/java/florizz/command/AddFlowerCommand.java +++ b/src/main/java/florizz/command/AddFlowerCommand.java @@ -7,10 +7,11 @@ import florizz.objects.Flower; import java.util.ArrayList; +import java.util.logging.Logger; public class AddFlowerCommand extends Command{ + private static Logger logger = Logger.getLogger(AddFlowerCommand.class.getName()); private String flowerName; - private Integer quantity; private String bouquetName; private boolean enableUi; @@ -24,6 +25,7 @@ public AddFlowerCommand(String flowerName, int quantity, String bouquetName, boo @Override public boolean execute(ArrayList bouquetList, Ui ui) throws FlorizzException { + logger.entering(AddFlowerCommand.class.getName(), "execute"); boolean doesBouquetExist = false; Bouquet bouquetToAddFlower = new Bouquet(); for (int i = 0; !doesBouquetExist && i < bouquetList.size(); i++) { @@ -34,8 +36,7 @@ public boolean execute(ArrayList bouquetList, Ui ui) throws FlorizzExce } if (!doesBouquetExist) { - throw new FlorizzException("ERROR: No such bouquet is found." + System.lineSeparator() + - "Create a bouquet by using 'new `"); + throw new FlorizzException("No such bouquet is found."); } boolean doesFlowerExist = false; @@ -58,6 +59,8 @@ public boolean execute(ArrayList bouquetList, Ui ui) throws FlorizzExce if (enableUi) { ui.printAddFlowerSuccess(bouquetList, flowerName, quantity, bouquetName); } + + logger.exiting(AddFlowerCommand.class.getName(), "execute"); return true; } } diff --git a/src/main/java/florizz/command/ExitCommand.java b/src/main/java/florizz/command/ExitCommand.java index 3da0b00ac0..ba33276529 100644 --- a/src/main/java/florizz/command/ExitCommand.java +++ b/src/main/java/florizz/command/ExitCommand.java @@ -4,12 +4,16 @@ import florizz.objects.Bouquet; import java.util.ArrayList; +import java.util.logging.Logger; public class ExitCommand extends Command { + private Logger logger = Logger.getLogger(ExitCommand.class.getName()); @Override public boolean execute(ArrayList bouquetList, Ui ui) { + logger.entering(ExitCommand.class.getName(), "execute"); ui.printExitMessage(); + logger.exiting(ExitCommand.class.getName(), "execute"); return false; } } diff --git a/src/main/java/florizz/command/RecommendCommand.java b/src/main/java/florizz/command/RecommendCommand.java index e85a2ec30b..f6f93467b3 100644 --- a/src/main/java/florizz/command/RecommendCommand.java +++ b/src/main/java/florizz/command/RecommendCommand.java @@ -8,10 +8,13 @@ import florizz.objects.Flower; import java.util.ArrayList; +import java.util.logging.Logger; public class RecommendCommand extends Command{ + private Logger logger = Logger.getLogger(RecommendCommand.class.getName()); @Override public boolean execute(ArrayList bouquetList, Ui ui) throws FlorizzException { + logger.entering(RecommendCommand.class.getName(), "execute"); // ask for occasion Flower.Occasion occasion = askOccasion(ui); @@ -40,6 +43,7 @@ public boolean execute(ArrayList bouquetList, Ui ui) throws FlorizzExce // ask if they want to save bouquet to array askSaveBouquet(ui, bouquetList, recommendedBouquet); + logger.exiting(RecommendCommand.class.getName(), "execute"); return true; } @@ -48,13 +52,15 @@ public boolean execute(ArrayList bouquetList, Ui ui) throws FlorizzExce * @param eligibleFlowers list of flowers to choose from * @param recommendedBouquet bouquet to add flowers to */ - private static void addRandomFlowers(ArrayList eligibleFlowers, Bouquet recommendedBouquet) { + private void addRandomFlowers(ArrayList eligibleFlowers, Bouquet recommendedBouquet) { + logger.entering(RecommendCommand.class.getName(), "addRandomFlowers"); // [TEMPORARY CODE] // generate random combination of flowers from eligible flowers totaling to 5 for (int i = 0; i < 5; i++) { int randomIndex = (int) (Math.random() * eligibleFlowers.size()); recommendedBouquet.addFlower(eligibleFlowers.get(randomIndex), 1); } + logger.exiting(RecommendCommand.class.getName(), "addRandomFlowers"); } /** @@ -62,6 +68,7 @@ private static void addRandomFlowers(ArrayList eligibleFlowers, Bouquet * @return Occasion enum */ private Flower.Occasion askOccasion(Ui ui) throws FlorizzException { + logger.entering(RecommendCommand.class.getName(), "askOccasion"); String occasionInput = Parser.parseOccasion(ui.printAskOccasion()); // check if occasion is in our dictionary @@ -69,6 +76,7 @@ private Flower.Occasion askOccasion(Ui ui) throws FlorizzException { throw new FlorizzException("This occasion does not exist. Type 'occasion' to get a list of occasions"); } + logger.exiting(RecommendCommand.class.getName(), "askOccasion"); // convert string to Occasion enum return Flower.stringToOccasion(occasionInput); } @@ -79,6 +87,8 @@ private Flower.Occasion askOccasion(Ui ui) throws FlorizzException { * @return Colour enum */ private Flower.Colour askColour(Ui ui, ArrayList eligibleFlowers) throws FlorizzException { + assert !eligibleFlowers.isEmpty() : "Eligible flowers should not be empty"; + logger.entering(RecommendCommand.class.getName(), "askColour"); String colourInput = Parser.parseColour(ui.printAskColour(eligibleFlowers)); // check if colour is in our dictionary @@ -86,11 +96,13 @@ private Flower.Colour askColour(Ui ui, ArrayList eligibleFlowers) throws throw new FlorizzException("This colour does not exist. Type 'colour' to get a list of colours"); } + logger.exiting(RecommendCommand.class.getName(), "askColour"); return Flower.stringToColour(colourInput); } private void askSaveBouquet(Ui ui, ArrayList bouquetList, Bouquet recommendedBouquet) throws FlorizzException { + logger.entering(RecommendCommand.class.getName(), "askSaveBouquet"); String saveInput = Parser.parseSaveBouquet(ui.printAskSaveBouquet(recommendedBouquet)); if (saveInput.equals("yes")) { @@ -103,5 +115,6 @@ private void askSaveBouquet(Ui ui, ArrayList bouquetList, ui.printBouquetAdded(recommendedBouquet); assert !bouquetList.isEmpty() : "Bouquet list should not be empty"; } + logger.exiting(RecommendCommand.class.getName(), "askSaveBouquet"); } } diff --git a/src/main/java/florizz/command/RemoveFlowerCommand.java b/src/main/java/florizz/command/RemoveFlowerCommand.java index fdf8e40b52..ecbe7224d8 100644 --- a/src/main/java/florizz/command/RemoveFlowerCommand.java +++ b/src/main/java/florizz/command/RemoveFlowerCommand.java @@ -7,8 +7,10 @@ import florizz.objects.Flower; import java.util.ArrayList; +import java.util.logging.Logger; public class RemoveFlowerCommand extends Command { + private static Logger logger = Logger.getLogger(RemoveFlowerCommand.class.getName()); private String flowerName; private Integer quantity; private String bouquetName; @@ -21,6 +23,8 @@ public RemoveFlowerCommand(String flowerName, int quantity, String bouquetName) @Override public boolean execute(ArrayList bouquetList, Ui ui) throws FlorizzException { + logger.entering(RemoveFlowerCommand.class.getName(), "execute"); + assert !bouquetList.isEmpty() : "Bouquet list should not be empty"; boolean doesBouquetExist = false; Bouquet bouquetToRemoveFlower = new Bouquet(); for (int i = 0; !doesBouquetExist && i < bouquetList.size(); i++) { @@ -56,6 +60,7 @@ public boolean execute(ArrayList bouquetList, Ui ui) throws FlorizzExce ui.printRemoveFlowerUnsuccessful(bouquetList, flowerName, bouquetName); } + logger.exiting(RemoveFlowerCommand.class.getName(), "execute"); return true; } }