Skip to content

Commit

Permalink
Merge pull request #140 from AY2122S1-CS2103-F10-4/yatbun_ped-policy-…
Browse files Browse the repository at this point in the history
…edit-tag-fix

Fix t/ prefix not working for `editpolicy` command
  • Loading branch information
meerian authored Nov 4, 2021
2 parents b8696d5 + 3379fed commit 4532b24
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -84,5 +84,4 @@ private Optional<Set<Tag>> parseTagsForEdit(Collection<String> tags) throws Pars
Collection<String> tagSet = tags.size() == 1 && tags.contains("") ? Collections.emptySet() : tags;
return Optional.of(ParserUtil.parseTags(tagSet));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,22 @@
import static seedu.siasa.logic.parser.CliSyntax.PREFIX_CONTACT_INDEX;
import static seedu.siasa.logic.parser.CliSyntax.PREFIX_EXPIRY;
import static seedu.siasa.logic.parser.CliSyntax.PREFIX_PAYMENT;
import static seedu.siasa.logic.parser.CliSyntax.PREFIX_TAG;
import static seedu.siasa.logic.parser.CliSyntax.PREFIX_TITLE;

import java.util.Collection;
import java.util.Collections;
import java.util.Optional;
import java.util.Set;

import seedu.siasa.commons.core.index.Index;
import seedu.siasa.logic.commands.policy.EditPolicyCommand;
import seedu.siasa.logic.parser.ArgumentMultimap;
import seedu.siasa.logic.parser.ArgumentTokenizer;
import seedu.siasa.logic.parser.Parser;
import seedu.siasa.logic.parser.ParserUtil;
import seedu.siasa.logic.parser.exceptions.ParseException;
import seedu.siasa.model.tag.Tag;

/**
* Parses input arguments and creates a new EditPolicyCommand object
Expand All @@ -35,7 +42,8 @@ public EditPolicyCommand parse(String args) throws ParseException {
PREFIX_EXPIRY,
PREFIX_PAYMENT,
PREFIX_COMMISSION,
PREFIX_CONTACT_INDEX);
PREFIX_CONTACT_INDEX,
PREFIX_TAG);

Index index;

Expand Down Expand Up @@ -73,6 +81,7 @@ public EditPolicyCommand parse(String args) throws ParseException {
editPolicyDescriptor.setOwnerIndex(ParserUtil.parseIndex(
argMultimap.getValue(PREFIX_CONTACT_INDEX).get()));
}
parseTagsForEdit(argMultimap.getAllValues(PREFIX_TAG)).ifPresent(editPolicyDescriptor::setTags);

if (!editPolicyDescriptor.isAnyFieldEdited()) {
throw new ParseException(EditPolicyCommand.MESSAGE_NOT_EDITED);
Expand All @@ -81,4 +90,18 @@ public EditPolicyCommand parse(String args) throws ParseException {
return new EditPolicyCommand(index, editPolicyDescriptor);
}

/**
* Parses {@code Collection<String> tags} into a {@code Set<Tag>} if {@code tags} is non-empty.
* If {@code tags} contain only one element which is an empty string, it will be parsed into a
* {@code Set<Tag>} containing zero tags.
*/
private Optional<Set<Tag>> parseTagsForEdit(Collection<String> tags) throws ParseException {
assert tags != null;

if (tags.isEmpty()) {
return Optional.empty();
}
Collection<String> tagSet = tags.size() == 1 && tags.contains("") ? Collections.emptySet() : tags;
return Optional.of(ParserUtil.parseTags(tagSet));
}
}

0 comments on commit 4532b24

Please sign in to comment.