Skip to content

Commit

Permalink
Merge pull request #104 from IanFH/touch-up-ms2
Browse files Browse the repository at this point in the history
Touch up
  • Loading branch information
IanFH committed Apr 3, 2024
2 parents 9119497 + d76a8fd commit 55157b0
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 4 deletions.
9 changes: 6 additions & 3 deletions src/main/java/florizz/command/AddFlowerCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -24,6 +25,7 @@ public AddFlowerCommand(String flowerName, int quantity, String bouquetName, boo

@Override
public boolean execute(ArrayList<Bouquet> 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++) {
Expand All @@ -34,8 +36,7 @@ public boolean execute(ArrayList<Bouquet> bouquetList, Ui ui) throws FlorizzExce
}

if (!doesBouquetExist) {
throw new FlorizzException("ERROR: No such bouquet is found." + System.lineSeparator() +
"Create a bouquet by using 'new <bouquetName>`");
throw new FlorizzException("No such bouquet is found.");
}

boolean doesFlowerExist = false;
Expand All @@ -58,6 +59,8 @@ public boolean execute(ArrayList<Bouquet> bouquetList, Ui ui) throws FlorizzExce
if (enableUi) {
ui.printAddFlowerSuccess(bouquetList, flowerName, quantity, bouquetName);
}

logger.exiting(AddFlowerCommand.class.getName(), "execute");
return true;
}
}
4 changes: 4 additions & 0 deletions src/main/java/florizz/command/ExitCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -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<Bouquet> bouquetList, Ui ui) {
logger.entering(ExitCommand.class.getName(), "execute");
ui.printExitMessage();
logger.exiting(ExitCommand.class.getName(), "execute");
return false;
}
}
15 changes: 14 additions & 1 deletion src/main/java/florizz/command/RecommendCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -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<Bouquet> bouquetList, Ui ui) throws FlorizzException {
logger.entering(RecommendCommand.class.getName(), "execute");
// ask for occasion
Flower.Occasion occasion = askOccasion(ui);

Expand Down Expand Up @@ -40,6 +43,7 @@ public boolean execute(ArrayList<Bouquet> 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;
}

Expand All @@ -48,27 +52,31 @@ public boolean execute(ArrayList<Bouquet> 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<Flower> eligibleFlowers, Bouquet recommendedBouquet) {
private void addRandomFlowers(ArrayList<Flower> 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");
}

/**
* Asks user for occasion
* @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
if (!Flower.isValidOccasion(occasionInput)) {
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);
}
Expand All @@ -79,18 +87,22 @@ private Flower.Occasion askOccasion(Ui ui) throws FlorizzException {
* @return Colour enum
*/
private Flower.Colour askColour(Ui ui, ArrayList<Flower> 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
if (!Flower.isValidColour(colourInput)) {
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<Bouquet> bouquetList,
Bouquet recommendedBouquet) throws FlorizzException {
logger.entering(RecommendCommand.class.getName(), "askSaveBouquet");
String saveInput = Parser.parseSaveBouquet(ui.printAskSaveBouquet(recommendedBouquet));

if (saveInput.equals("yes")) {
Expand All @@ -103,5 +115,6 @@ private void askSaveBouquet(Ui ui, ArrayList<Bouquet> bouquetList,
ui.printBouquetAdded(recommendedBouquet);
assert !bouquetList.isEmpty() : "Bouquet list should not be empty";
}
logger.exiting(RecommendCommand.class.getName(), "askSaveBouquet");
}
}
5 changes: 5 additions & 0 deletions src/main/java/florizz/command/RemoveFlowerCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -21,6 +23,8 @@ public RemoveFlowerCommand(String flowerName, int quantity, String bouquetName)

@Override
public boolean execute(ArrayList<Bouquet> 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++) {
Expand Down Expand Up @@ -56,6 +60,7 @@ public boolean execute(ArrayList<Bouquet> bouquetList, Ui ui) throws FlorizzExce
ui.printRemoveFlowerUnsuccessful(bouquetList, flowerName, bouquetName);
}

logger.exiting(RemoveFlowerCommand.class.getName(), "execute");
return true;
}
}

0 comments on commit 55157b0

Please sign in to comment.