Skip to content

Commit

Permalink
Merge branch 'master' into add-user-confirmation-doc
Browse files Browse the repository at this point in the history
  • Loading branch information
wn committed Oct 24, 2018
2 parents 6facfbe + 7378906 commit d824ee5
Show file tree
Hide file tree
Showing 28 changed files with 1,297 additions and 148 deletions.
12 changes: 12 additions & 0 deletions src/main/java/seedu/address/logic/commands/AddCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,12 @@

import static java.util.Objects.requireNonNull;
import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS;
import static seedu.address.logic.parser.CliSyntax.PREFIX_BIKE;
import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL;
import static seedu.address.logic.parser.CliSyntax.PREFIX_LOANRATE;
import static seedu.address.logic.parser.CliSyntax.PREFIX_LOANTIME;
import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME;
import static seedu.address.logic.parser.CliSyntax.PREFIX_NRIC;
import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE;
import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG;

Expand All @@ -22,15 +26,23 @@ public class AddCommand extends Command {
public static final String MESSAGE_USAGE = COMMAND_WORD + ": Adds a loan to the loan book. "
+ "Parameters: "
+ PREFIX_NAME + "NAME "
+ PREFIX_NRIC + "NRIC "
+ PREFIX_PHONE + "PHONE "
+ PREFIX_EMAIL + "EMAIL "
+ PREFIX_ADDRESS + "ADDRESS "
+ PREFIX_BIKE + "BIKE "
+ PREFIX_LOANRATE + "LOANRATE "
+ PREFIX_LOANTIME + "LOANTIME "
+ "[" + PREFIX_TAG + "TAG]...\n"
+ "Example: " + COMMAND_WORD + " "
+ PREFIX_NAME + "John Doe "
+ PREFIX_NRIC + "T0248272F "
+ PREFIX_PHONE + "98765432 "
+ PREFIX_EMAIL + "johnd@example.com "
+ PREFIX_ADDRESS + "311, Clementi Ave 2, #02-25 "
+ PREFIX_BIKE + "Bike001 "
+ PREFIX_LOANRATE + "3.5 "
+ PREFIX_LOANTIME + "2018-10-01 12:00 "
+ PREFIX_TAG + "friends "
+ PREFIX_TAG + "owesMoney";

Expand Down
70 changes: 69 additions & 1 deletion src/main/java/seedu/address/logic/commands/EditCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,12 @@

import static java.util.Objects.requireNonNull;
import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS;
import static seedu.address.logic.parser.CliSyntax.PREFIX_BIKE;
import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL;
import static seedu.address.logic.parser.CliSyntax.PREFIX_LOANRATE;
import static seedu.address.logic.parser.CliSyntax.PREFIX_LOANTIME;
import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME;
import static seedu.address.logic.parser.CliSyntax.PREFIX_NRIC;
import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE;
import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG;
import static seedu.address.model.Model.PREDICATE_SHOW_ALL_LOANS;
Expand All @@ -20,10 +24,14 @@
import seedu.address.logic.CommandHistory;
import seedu.address.logic.commands.exceptions.CommandException;
import seedu.address.model.Model;
import seedu.address.model.bike.Bike;
import seedu.address.model.loan.Address;
import seedu.address.model.loan.Email;
import seedu.address.model.loan.Loan;
import seedu.address.model.loan.LoanRate;
import seedu.address.model.loan.LoanTime;
import seedu.address.model.loan.Name;
import seedu.address.model.loan.Nric;
import seedu.address.model.loan.Phone;
import seedu.address.model.tag.Tag;

Expand All @@ -39,9 +47,13 @@ public class EditCommand extends Command {
+ "Existing values will be overwritten by the input values.\n"
+ "Parameters: INDEX (must be a positive integer) "
+ "[" + PREFIX_NAME + "NAME] "
+ "[" + PREFIX_NRIC + "NRIC] "
+ "[" + PREFIX_PHONE + "PHONE] "
+ "[" + PREFIX_EMAIL + "EMAIL] "
+ "[" + PREFIX_ADDRESS + "ADDRESS] "
+ "[" + PREFIX_BIKE + "BIKE] "
+ "[" + PREFIX_LOANRATE + "LOANRATE] "
+ "[" + PREFIX_LOANTIME + "LOANTIME] "
+ "[" + PREFIX_TAG + "TAG]...\n"
+ "Example: " + COMMAND_WORD + " 1 "
+ PREFIX_PHONE + "91234567 "
Expand Down Expand Up @@ -96,12 +108,24 @@ private static Loan createEditedLoan(Loan loanToEdit, EditLoanDescriptor editLoa
assert loanToEdit != null;

Name updatedName = editLoanDescriptor.getName().orElse(loanToEdit.getName());
Nric updatedNric = editLoanDescriptor.getNric().orElse(loanToEdit.getNric());
Phone updatedPhone = editLoanDescriptor.getPhone().orElse(loanToEdit.getPhone());
Email updatedEmail = editLoanDescriptor.getEmail().orElse(loanToEdit.getEmail());
Address updatedAddress = editLoanDescriptor.getAddress().orElse(loanToEdit.getAddress());
Bike updatedBike = editLoanDescriptor.getBike().orElse(loanToEdit.getBike());
LoanRate updatedRate = editLoanDescriptor.getLoanRate().orElse(loanToEdit.getLoanRate());
LoanTime updatedTime = editLoanDescriptor.getLoanTime().orElse(loanToEdit.getLoanTime());
Set<Tag> updatedTags = editLoanDescriptor.getTags().orElse(loanToEdit.getTags());

return new Loan(updatedName, updatedPhone, updatedEmail, updatedAddress, updatedTags);
return new Loan(updatedName,
updatedNric,
updatedPhone,
updatedEmail,
updatedAddress,
updatedBike,
updatedRate,
updatedTime,
updatedTags);
}

@Override
Expand All @@ -128,9 +152,13 @@ public boolean equals(Object other) {
*/
public static class EditLoanDescriptor {
private Name name;
private Nric nric;
private Phone phone;
private Email email;
private Address address;
private Bike bike;
private LoanRate rate;
private LoanTime time;
private Set<Tag> tags;

public EditLoanDescriptor() {}
Expand All @@ -141,9 +169,13 @@ public EditLoanDescriptor() {}
*/
public EditLoanDescriptor(EditLoanDescriptor toCopy) {
setName(toCopy.name);
setNric(toCopy.nric);
setPhone(toCopy.phone);
setEmail(toCopy.email);
setAddress(toCopy.address);
setBike(toCopy.bike);
setLoanRate(toCopy.rate);
setLoanTime(toCopy.time);
setTags(toCopy.tags);
}

Expand All @@ -162,6 +194,14 @@ public Optional<Name> getName() {
return Optional.ofNullable(name);
}

public void setNric(Nric nric) {
this.nric = nric;
}

public Optional<Nric> getNric() {
return Optional.ofNullable(nric);
}

public void setPhone(Phone phone) {
this.phone = phone;
}
Expand All @@ -186,6 +226,30 @@ public Optional<Address> getAddress() {
return Optional.ofNullable(address);
}

public void setBike(Bike bike) {
this.bike = bike;
}

public Optional<Bike> getBike() {
return Optional.ofNullable(bike);
}

public void setLoanRate(LoanRate rate) {
this.rate = rate;
}

public Optional<LoanRate> getLoanRate() {
return Optional.ofNullable(rate);
}

public void setLoanTime(LoanTime time) {
this.time = time;
}

public Optional<LoanTime> getLoanTime() {
return Optional.ofNullable(time);
}

/**
* Sets {@code tags} to this object's {@code tags}.
* A defensive copy of {@code tags} is used internally.
Expand Down Expand Up @@ -219,9 +283,13 @@ public boolean equals(Object other) {
EditLoanDescriptor e = (EditLoanDescriptor) other;

return getName().equals(e.getName())
&& getNric().equals(e.getNric())
&& getPhone().equals(e.getPhone())
&& getEmail().equals(e.getEmail())
&& getAddress().equals(e.getAddress())
&& getBike().equals(e.getBike())
&& getLoanRate().equals(e.getLoanRate())
&& getLoanTime().equals(e.getLoanTime())
&& getTags().equals(e.getTags());
}
}
Expand Down
35 changes: 32 additions & 3 deletions src/main/java/seedu/address/logic/parser/AddCommandParser.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,12 @@

import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT;
import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS;
import static seedu.address.logic.parser.CliSyntax.PREFIX_BIKE;
import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL;
import static seedu.address.logic.parser.CliSyntax.PREFIX_LOANRATE;
import static seedu.address.logic.parser.CliSyntax.PREFIX_LOANTIME;
import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME;
import static seedu.address.logic.parser.CliSyntax.PREFIX_NRIC;
import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE;
import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG;

Expand All @@ -12,10 +16,14 @@

import seedu.address.logic.commands.AddCommand;
import seedu.address.logic.parser.exceptions.ParseException;
import seedu.address.model.bike.Bike;
import seedu.address.model.loan.Address;
import seedu.address.model.loan.Email;
import seedu.address.model.loan.Loan;
import seedu.address.model.loan.LoanRate;
import seedu.address.model.loan.LoanTime;
import seedu.address.model.loan.Name;
import seedu.address.model.loan.Nric;
import seedu.address.model.loan.Phone;
import seedu.address.model.tag.Tag;

Expand All @@ -31,20 +39,41 @@ public class AddCommandParser implements Parser<AddCommand> {
*/
public AddCommand parse(String args) throws ParseException {
ArgumentMultimap argMultimap =
ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS, PREFIX_TAG);
ArgumentTokenizer.tokenize(args,
PREFIX_NAME,
PREFIX_NRIC,
PREFIX_PHONE,
PREFIX_EMAIL,
PREFIX_ADDRESS,
PREFIX_BIKE,
PREFIX_LOANRATE,
PREFIX_LOANTIME,
PREFIX_TAG);

if (!arePrefixesPresent(argMultimap, PREFIX_NAME, PREFIX_ADDRESS, PREFIX_PHONE, PREFIX_EMAIL)
if (!arePrefixesPresent(argMultimap,
PREFIX_NAME,
PREFIX_NRIC,
PREFIX_PHONE,
PREFIX_EMAIL,
PREFIX_ADDRESS,
PREFIX_BIKE,
PREFIX_LOANRATE,
PREFIX_LOANTIME)
|| !argMultimap.getPreamble().isEmpty()) {
throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddCommand.MESSAGE_USAGE));
}

Name name = ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get());
Nric nric = ParserUtil.parseNric(argMultimap.getValue(PREFIX_NRIC).get());
Phone phone = ParserUtil.parsePhone(argMultimap.getValue(PREFIX_PHONE).get());
Email email = ParserUtil.parseEmail(argMultimap.getValue(PREFIX_EMAIL).get());
Address address = ParserUtil.parseAddress(argMultimap.getValue(PREFIX_ADDRESS).get());
Bike bike = ParserUtil.parseBike(argMultimap.getValue(PREFIX_BIKE).get());
LoanRate rate = ParserUtil.parseLoanRate(argMultimap.getValue(PREFIX_LOANRATE).get());
LoanTime time = ParserUtil.parseLoanTime(argMultimap.getValue(PREFIX_LOANTIME).get());
Set<Tag> tagList = ParserUtil.parseTags(argMultimap.getAllValues(PREFIX_TAG));

Loan loan = new Loan(name, phone, email, address, tagList);
Loan loan = new Loan(name, nric, phone, email, address, bike, rate, time, tagList);

return new AddCommand(loan);
}
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/seedu/address/logic/parser/CliSyntax.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,15 @@ public class CliSyntax {

/* Prefix definitions */
public static final Prefix PREFIX_NAME = new Prefix("n/");
public static final Prefix PREFIX_NRIC = new Prefix("ic/");
public static final Prefix PREFIX_INDEX = new Prefix("i/");
public static final Prefix PREFIX_PASSWORD = new Prefix("x/");
public static final Prefix PREFIX_PHONE = new Prefix("p/");
public static final Prefix PREFIX_EMAIL = new Prefix("e/");
public static final Prefix PREFIX_ADDRESS = new Prefix("a/");
public static final Prefix PREFIX_BIKE = new Prefix("b/");
public static final Prefix PREFIX_LOANRATE = new Prefix("lr/");
public static final Prefix PREFIX_LOANTIME = new Prefix("lt/");
public static final Prefix PREFIX_TAG = new Prefix("t/");

}
19 changes: 18 additions & 1 deletion src/main/java/seedu/address/logic/parser/EditCommandParser.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,12 @@
import static java.util.Objects.requireNonNull;
import static seedu.address.commons.core.Messages.MESSAGE_INVALID_COMMAND_FORMAT;
import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS;
import static seedu.address.logic.parser.CliSyntax.PREFIX_BIKE;
import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL;
import static seedu.address.logic.parser.CliSyntax.PREFIX_LOANRATE;
import static seedu.address.logic.parser.CliSyntax.PREFIX_LOANTIME;
import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME;
import static seedu.address.logic.parser.CliSyntax.PREFIX_NRIC;
import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE;
import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG;

Expand Down Expand Up @@ -32,7 +36,8 @@ public class EditCommandParser implements Parser<EditCommand> {
public EditCommand parse(String args) throws ParseException {
requireNonNull(args);
ArgumentMultimap argMultimap =
ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS, PREFIX_TAG);
ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_NRIC, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS,
PREFIX_BIKE, PREFIX_LOANRATE, PREFIX_LOANTIME, PREFIX_TAG);

Index index;

Expand All @@ -46,6 +51,9 @@ public EditCommand parse(String args) throws ParseException {
if (argMultimap.getValue(PREFIX_NAME).isPresent()) {
editLoanDescriptor.setName(ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get()));
}
if (argMultimap.getValue(PREFIX_NRIC).isPresent()) {
editLoanDescriptor.setNric(ParserUtil.parseNric(argMultimap.getValue(PREFIX_NRIC).get()));
}
if (argMultimap.getValue(PREFIX_PHONE).isPresent()) {
editLoanDescriptor.setPhone(ParserUtil.parsePhone(argMultimap.getValue(PREFIX_PHONE).get()));
}
Expand All @@ -55,6 +63,15 @@ public EditCommand parse(String args) throws ParseException {
if (argMultimap.getValue(PREFIX_ADDRESS).isPresent()) {
editLoanDescriptor.setAddress(ParserUtil.parseAddress(argMultimap.getValue(PREFIX_ADDRESS).get()));
}
if (argMultimap.getValue(PREFIX_BIKE).isPresent()) {
editLoanDescriptor.setBike(ParserUtil.parseBike(argMultimap.getValue(PREFIX_BIKE).get()));
}
if (argMultimap.getValue(PREFIX_LOANRATE).isPresent()) {
editLoanDescriptor.setLoanRate(ParserUtil.parseLoanRate(argMultimap.getValue(PREFIX_LOANRATE).get()));
}
if (argMultimap.getValue(PREFIX_LOANTIME).isPresent()) {
editLoanDescriptor.setLoanTime(ParserUtil.parseLoanTime(argMultimap.getValue(PREFIX_LOANTIME).get()));
}
parseTagsForEdit(argMultimap.getAllValues(PREFIX_TAG)).ifPresent(editLoanDescriptor::setTags);

if (!editLoanDescriptor.isAnyFieldEdited()) {
Expand Down
Loading

0 comments on commit d824ee5

Please sign in to comment.