Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Touch up #104

Merged
merged 1 commit into from
Apr 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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");

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice usage of logging!

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;
}
}
Loading