Skip to content

Commit 3d16e8e

Browse files
author
yuanxing-y
committed
Add setBudget Command
1 parent 2fd9722 commit 3d16e8e

6 files changed

Lines changed: 66 additions & 5 deletions

File tree

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package seedu.address.logic.commands;
2+
3+
import seedu.address.logic.commands.exceptions.CommandException;
4+
import seedu.address.model.Model;
5+
6+
import static seedu.address.commons.util.CollectionUtil.requireAllNonNull;
7+
8+
public class SetBudgetCommand extends Command {
9+
public static final String COMMAND_WORD = "setBudget";
10+
public static final String MESSAGE_SET_BUDGET_SUCCESS = "Successful! Te budget is now S$ %.2f.\n";
11+
public static final String MESSAGE_SET_BUDGET_FAIL = "Set Budget failed, please enter a valid budget.\n";
12+
13+
private final double budget;
14+
15+
public SetBudgetCommand(double budget) {
16+
requireAllNonNull(budget);
17+
this.budget = budget;
18+
}
19+
20+
@Override
21+
public CommandResult execute(Model model) throws CommandException {
22+
model.setExpenseBookBudget(budget);
23+
String msg = String.format(MESSAGE_SET_BUDGET_SUCCESS, budget);
24+
return new CommandResult(msg);
25+
}
26+
}

src/main/java/seedu/address/logic/parser/ExpenseBookParser.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,7 @@
66
import java.util.regex.Matcher;
77
import java.util.regex.Pattern;
88

9-
import seedu.address.logic.commands.Command;
10-
import seedu.address.logic.commands.DescriptionCommand;
11-
import seedu.address.logic.commands.HelpCommand;
12-
import seedu.address.logic.commands.ShowBudgetCommand;
9+
import seedu.address.logic.commands.*;
1310
import seedu.address.logic.parser.exceptions.ParseException;
1411

1512
/**
@@ -49,7 +46,9 @@ public Command parseCommand(String userInput) throws ParseException {
4946
.COMMAND_WORD:
5047
return new ShowBudgetCommandParser().parse(arguments);
5148

52-
49+
case SetBudgetCommand
50+
.COMMAND_WORD:
51+
return new SetBudgetCommandParser().parse(arguments);
5352

5453
default:
5554
throw new ParseException(MESSAGE_UNKNOWN_COMMAND);
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package seedu.address.logic.parser;
2+
3+
import seedu.address.commons.core.index.Index;
4+
import seedu.address.logic.commands.DeleteCommand;
5+
import seedu.address.logic.commands.SetBudgetCommand;
6+
import seedu.address.logic.parser.exceptions.ParseException;
7+
8+
import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT;
9+
10+
public class SetBudgetCommandParser implements Parser<SetBudgetCommand> {
11+
@Override
12+
public SetBudgetCommand parse(String userInput) throws ParseException {
13+
try {
14+
//needs oop later
15+
double budget = Double.parseDouble(userInput.split(" ")[1]);
16+
return new SetBudgetCommand(budget);
17+
} catch (Exception pe) {
18+
throw new ParseException(
19+
String.format(MESSAGE_INVALID_COMMAND_FORMAT, SetBudgetCommand.MESSAGE_SET_BUDGET_FAIL), pe);
20+
}
21+
}
22+
}

src/main/java/seedu/address/model/ExpenseModelManager.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,4 +174,10 @@ public double getExpenseBookRemaining() {
174174
return expenseBook.getRemainingBudget();
175175
}
176176

177+
@Override
178+
public void setExpenseBookBudget(double budget) {
179+
expenseBook.setBudget(budget);
180+
}
181+
182+
177183
}

src/main/java/seedu/address/model/Model.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,4 +100,6 @@ public interface Model {
100100
double getExpenseBookBudget();
101101

102102
double getExpenseBookRemaining();
103+
104+
void setExpenseBookBudget(double budget);
103105
}

src/main/java/seedu/address/model/ModelManager.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,12 @@ public double getExpenseBookRemaining() {
186186
return 0;
187187
}
188188

189+
//dummy
190+
@Override
191+
public void setExpenseBookBudget(double budget) {
192+
193+
}
194+
189195
@Override
190196
public boolean equals(Object obj) {
191197
// short circuit if same object

0 commit comments

Comments
 (0)