Skip to content

Commit

Permalink
Change r/ and c/ as a way to clear the fields to r/nil and c/nil (#186)
Browse files Browse the repository at this point in the history
  • Loading branch information
JuliaPoo authored Apr 12, 2024
1 parent 8f4e2ad commit 834a24e
Show file tree
Hide file tree
Showing 6 changed files with 24 additions and 10 deletions.
5 changes: 4 additions & 1 deletion src/main/java/seedu/address/logic/commands/EditCommand.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package seedu.address.logic.commands;

import static java.util.Objects.requireNonNull;
import static seedu.address.logic.parser.CliSyntax.NIL_FIELD;
import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS;
import static seedu.address.logic.parser.CliSyntax.PREFIX_CCA;
import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL;
Expand Down Expand Up @@ -55,7 +56,9 @@ public class EditCommand extends Command {
+ "[" + PREFIX_METADATA + "Meta-data]...\n"
+ "Example: " + COMMAND_WORD + " 1 "
+ PREFIX_PHONE + "91234567 "
+ PREFIX_EMAIL + "[email protected]";
+ PREFIX_EMAIL + "[email protected]\n\n"
+ "Tip: To clear all of the person's roles, use " + PREFIX_ROLE + NIL_FIELD + "\n"
+ "Tip: To clear all of the person's CCAs, use " + PREFIX_CCA + NIL_FIELD;

public static final String MESSAGE_EDIT_PERSON_SUCCESS = "Edited Person: %1$s";
public static final String MESSAGE_NOT_EDITED = "At least one field to edit must be provided.";
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/seedu/address/logic/parser/CliSyntax.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,6 @@ public class CliSyntax {
public static final Prefix PREFIX_ATTENDANCE = new Prefix("att/");
public static final Prefix PREFIX_SESSIONS = new Prefix("s/");
public static final Prefix PREFIX_METADATA = new Prefix("d/");

public static final String NIL_FIELD = "nil";
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import static java.util.Objects.requireNonNull;
import static seedu.address.logic.Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX;
import static seedu.address.logic.parser.CliSyntax.NIL_FIELD;
import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS;
import static seedu.address.logic.parser.CliSyntax.PREFIX_CCA;
import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL;
Expand Down Expand Up @@ -89,7 +90,7 @@ private Optional<Set<Role>> parseRolesForEdit(Collection<String> roles) throws P
if (roles.isEmpty()) {
return Optional.empty();
}
Collection<String> roleSet = roles.size() == 1 && roles.contains("") ? Collections.emptySet() : roles;
Collection<String> roleSet = roles.size() == 1 && roles.contains(NIL_FIELD) ? Collections.emptySet() : roles;
return Optional.of(ParserUtil.parseRoles(roleSet));
}

Expand All @@ -104,7 +105,7 @@ private Optional<Set<Cca>> parseCcasForEdit(Collection<String> ccas) throws Pars
if (ccas.isEmpty()) {
return Optional.empty();
}
Collection<String> ccaSet = ccas.size() == 1 && ccas.contains("") ? Collections.emptySet() : ccas;
Collection<String> ccaSet = ccas.size() == 1 && ccas.contains(NIL_FIELD) ? Collections.emptySet() : ccas;
return Optional.of(ParserUtil.parseCcas(ccaSet));
}
}
9 changes: 6 additions & 3 deletions src/main/java/seedu/address/model/cca/Cca.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,18 @@

import static java.util.Objects.requireNonNull;
import static seedu.address.commons.util.AppUtil.checkArgument;
import static seedu.address.logic.parser.CliSyntax.NIL_FIELD;

/**
* Represents a CCA in the address book.
* Guarantees: immutable; name is valid as declared in {@link #isValidCCAName(String)}
*/
public class Cca {

public static final String MESSAGE_CONSTRAINTS = "CCA names should be alphanumeric (but can include "
+ "whitespace)";
public static final String MESSAGE_CONSTRAINTS = "CCA names should be non-empty and alphanumeric "
+ "(but can include whitespace).\n"
+ "CCA names cannot be \"" + NIL_FIELD + "\" as \"" + NIL_FIELD
+ "\" is reserved for denoting an empty CCA field.";
public static final String VALIDATION_REGEX = "[\\p{Alnum}\\s]+";

public final String ccaName;
Expand All @@ -30,7 +33,7 @@ public Cca(String ccaName) {
* Returns true if a given string is a valid Cca name.
*/
public static boolean isValidCcaName(String test) {
return test.matches(VALIDATION_REGEX);
return !test.equals(NIL_FIELD) && test.matches(VALIDATION_REGEX);
}

/**
Expand Down
8 changes: 6 additions & 2 deletions src/main/java/seedu/address/model/roles/Role.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,18 @@

import static java.util.Objects.requireNonNull;
import static seedu.address.commons.util.AppUtil.checkArgument;
import static seedu.address.logic.parser.CliSyntax.NIL_FIELD;

/**
* Represents a Role in the address book.
* Guarantees: immutable; name is valid as declared in {@link #isValidRoleName(String)}
*/
public class Role {

public static final String MESSAGE_CONSTRAINTS = "Role names should be alphanumeric with whitespace";
public static final String MESSAGE_CONSTRAINTS = "Role names should be non-empty and alphanumeric "
+ "(but can include whitespace).\n"
+ "Role names cannot be \"" + NIL_FIELD + "\" as \"" + NIL_FIELD
+ "\" is reserved for denoting an empty role field.";
public static final String VALIDATION_REGEX = "[\\p{Alnum}\\s]+";

public final String roleName;
Expand All @@ -29,7 +33,7 @@ public Role(String roleName) {
* Returns true if a given string is a valid role name.
*/
public static boolean isValidRoleName(String test) {
return test.matches(VALIDATION_REGEX);
return !test.equals(NIL_FIELD) && test.matches(VALIDATION_REGEX);
}

@Override
Expand Down
5 changes: 3 additions & 2 deletions src/test/java/seedu/address/testutil/PersonUtil.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package seedu.address.testutil;

import static seedu.address.logic.parser.CliSyntax.NIL_FIELD;
import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS;
import static seedu.address.logic.parser.CliSyntax.PREFIX_CCA;
import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL;
Expand Down Expand Up @@ -63,7 +64,7 @@ public static String getEditPersonDescriptorDetails(EditPersonDescriptor descrip
if (descriptor.getRoles().isPresent()) {
Set<Role> roles = descriptor.getRoles().get();
if (roles.isEmpty()) {
sb.append(PREFIX_ROLE);
sb.append(PREFIX_ROLE + NIL_FIELD);
} else {
sb.append(PREFIX_ROLE);
roles.forEach(s -> sb.append(PREFIX_ROLE).append(s.roleName).append(" "));
Expand All @@ -73,7 +74,7 @@ public static String getEditPersonDescriptorDetails(EditPersonDescriptor descrip
if (descriptor.getCcas().isPresent()) {
Set<Cca> roles = descriptor.getCcas().get();
if (roles.isEmpty()) {
sb.append(PREFIX_CCA);
sb.append(PREFIX_CCA + NIL_FIELD);
} else {
roles.forEach(s -> sb.append(PREFIX_CCA).append(s.ccaName).append(" "));
}
Expand Down

0 comments on commit 834a24e

Please sign in to comment.