Skip to content

Commit a02921f

Browse files
authored
Merge pull request #151 from Saha9616/branch-Major-Tag
Branch major tag
2 parents ac8a1c6 + 0270e5a commit a02921f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+499
-465
lines changed

src/main/java/seedu/connectus/MainApp.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
*/
3737
public class MainApp extends Application {
3838

39-
public static final Version VERSION = new Version(1, 3, 0, true);
39+
public static final Version VERSION = new Version(1, 3, 1, true);
4040

4141
private static final Logger logger = LogsCenter.getLogger(MainApp.class);
4242

src/main/java/seedu/connectus/commons/core/Messages.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,7 @@ public class Messages {
1515
public static final String MESSAGE_PERSONS_UPCOMING_BIRTHDAY = "%1$d persons has upcoming"
1616
+ " birthdays in the next 2 months!";
1717
public static final String MESSAGE_PERSON_FIELD_NOT_PRESENT = "The person has no such field";
18+
public static final String MESSAGE_PERSON_TOO_MANY_MAJORS = "The total number of majors cannot be "
19+
+ "greater than 2!";
1820

1921
}

src/main/java/seedu/connectus/logic/commands/AddCommand.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_ADDRESS;
55
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_BIRTHDAY;
66
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_CCA;
7-
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_CCA_POSITION;
87
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_EMAIL;
8+
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_MAJOR;
99
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_MODULE;
1010
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_NAME;
1111
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_PHONE;
@@ -36,10 +36,11 @@ public class AddCommand extends Command {
3636
+ "[" + PREFIX_SOCMED_TELEGRAM + "TELEGRAM] "
3737
+ "[" + PREFIX_SOCMED_WHATSAPP + "WHATSAPP] "
3838
+ "[" + PREFIX_BIRTHDAY + "BIRTHDAY] "
39-
+ "[" + PREFIX_REMARK + "REMARK]... "
4039
+ "[" + PREFIX_MODULE + "MODULE]... "
41-
+ "[" + PREFIX_CCA + "CCA$#CA_POSITION]... "
42-
+ "[" + PREFIX_CCA_POSITION + "CCA POSITION]...\n"
40+
+ "[" + PREFIX_CCA + "CCA#CCA]... "
41+
+ "[" + PREFIX_MAJOR + "MAJOR]... "
42+
+ "[" + PREFIX_REMARK + "REMARK]...\n"
43+
4344
+ "Example: " + COMMAND_WORD + " "
4445
+ PREFIX_NAME + "John Doe "
4546
+ PREFIX_PHONE + "98765432 "
@@ -49,10 +50,11 @@ public class AddCommand extends Command {
4950
+ PREFIX_SOCMED_INSTAGRAM + "john.doe "
5051
+ PREFIX_SOCMED_WHATSAPP + "98765432 "
5152
+ PREFIX_BIRTHDAY + "01/01/1990 "
52-
+ PREFIX_REMARK + "friends " + PREFIX_REMARK + "owesMoney "
5353
+ PREFIX_MODULE + "CS2103T " + PREFIX_MODULE + "CS2101 "
54-
+ PREFIX_CCA + "NES#Director " + PREFIX_CCA + "ICS "
55-
+ PREFIX_CCA_POSITION + "Director " + PREFIX_CCA_POSITION + "President";
54+
+ PREFIX_CCA + "NES " + PREFIX_CCA + "ICS#DIRECTOR"
55+
+ PREFIX_MAJOR + "Computer Science " + PREFIX_MAJOR + "BBA"
56+
+ PREFIX_REMARK + "friends " + PREFIX_REMARK + "owesMoney ";
57+
5658

5759
public static final String MESSAGE_SUCCESS = "New person added: %1$s";
5860
public static final String MESSAGE_DUPLICATE_PERSON = "This person already exists in the ConnectUS";

src/main/java/seedu/connectus/logic/commands/AddTagToPersonCommand.java

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
package seedu.connectus.logic.commands;
22

33
import static java.util.Objects.requireNonNull;
4+
import static seedu.connectus.commons.core.Messages.MESSAGE_PERSON_TOO_MANY_MAJORS;
45
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_CCA;
5-
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_CCA_POSITION;
6+
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_MAJOR;
67
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_MODULE;
78
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_REMARK;
89
import static seedu.connectus.model.Model.PREDICATE_SHOW_ALL_PERSONS;
@@ -18,7 +19,7 @@
1819
import seedu.connectus.model.Model;
1920
import seedu.connectus.model.person.Person;
2021
import seedu.connectus.model.tag.Cca;
21-
import seedu.connectus.model.tag.CcaPosition;
22+
import seedu.connectus.model.tag.Major;
2223
import seedu.connectus.model.tag.Module;
2324
import seedu.connectus.model.tag.Remark;
2425

@@ -31,16 +32,16 @@ public class AddTagToPersonCommand extends Command {
3132
+ "by the index number used in the displayed person list. \n"
3233
+ "Parameters: INDEX (must be a positive integer) "
3334
+ "[" + PREFIX_MODULE + "MODULE]... "
34-
+ "[" + PREFIX_CCA + "CCA]... "
35-
+ "[" + PREFIX_CCA_POSITION + "CCA POSITION]... "
35+
+ "[" + PREFIX_CCA + "CCA#CCA_POSITION]... "
36+
+ "[" + PREFIX_MAJOR + "MAJOR]... "
3637
+ "[" + PREFIX_REMARK + "REMARK]...\n"
3738
+ "Example: " + COMMAND_WORD + " 1 "
3839
+ PREFIX_MODULE + "CS2103T "
3940
+ PREFIX_MODULE + "CS2101 "
4041
+ PREFIX_CCA + "NES "
41-
+ PREFIX_CCA + "ICS "
42-
+ PREFIX_CCA_POSITION + "Director "
43-
+ PREFIX_CCA_POSITION + "President "
42+
+ PREFIX_CCA + "ICS#Director"
43+
+ PREFIX_MAJOR + "Computer Science "
44+
+ PREFIX_MAJOR + "BBA "
4445
+ PREFIX_REMARK + "friends "
4546
+ PREFIX_REMARK + "owesMoney";
4647

@@ -72,7 +73,9 @@ public CommandResult execute(Model model) throws CommandException {
7273

7374
var personToEdit = lastShownList.get(index.getZeroBased());
7475
var editedPerson = createEditedPerson(personToEdit, addTagDescriptor);
75-
76+
if (editedPerson.getMajors().size() > Major.MAX_MAJOR_COUNT) {
77+
throw new CommandException(MESSAGE_PERSON_TOO_MANY_MAJORS);
78+
}
7679
model.setPerson(personToEdit, editedPerson);
7780
model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS);
7881
return new CommandResult(String.format(MESSAGE_ADD_TAG_SUCCESS, editedPerson));
@@ -81,15 +84,15 @@ public CommandResult execute(Model model) throws CommandException {
8184
private Person createEditedPerson(Person personToEdit, AddTagDescriptor addTagDescriptor) {
8285
var modules = new HashSet<>(personToEdit.getModules());
8386
var ccas = new HashSet<>(personToEdit.getCcas());
84-
var ccaPositions = new HashSet<>(personToEdit.getCcaPositions());
87+
var majors = new HashSet<>(personToEdit.getMajors());
8588
var remarks = new HashSet<>(personToEdit.getRemarks());
8689

8790
modules.addAll(addTagDescriptor.modules);
8891
ccas.addAll(addTagDescriptor.ccas);
89-
ccaPositions.addAll(addTagDescriptor.ccaPositions);
92+
majors.addAll(addTagDescriptor.majors);
9093
remarks.addAll(addTagDescriptor.remarks);
9194

92-
return new Person(personToEdit, remarks, modules, ccas, ccaPositions);
95+
return new Person(personToEdit, remarks, modules, ccas, majors);
9396
}
9497

9598
@Override
@@ -118,18 +121,18 @@ public boolean equals(Object other) {
118121
public static class AddTagDescriptor {
119122
protected final Set<Module> modules;
120123
protected final Set<Cca> ccas;
121-
protected final Set<CcaPosition> ccaPositions;
124+
protected final Set<Major> majors;
122125
protected final Set<Remark> remarks;
123126

124127

125128
/**
126129
* Constructor.
127130
*/
128131
public AddTagDescriptor(Set<Remark> remarks, Set<Module> modules,
129-
Set<Cca> ccas, Set<CcaPosition> ccaPositions) {
132+
Set<Cca> ccas, Set<Major> majors) {
130133
this.modules = modules;
131134
this.ccas = ccas;
132-
this.ccaPositions = ccaPositions;
135+
this.majors = majors;
133136
this.remarks = remarks;
134137
}
135138

@@ -139,7 +142,7 @@ public AddTagDescriptor(Set<Remark> remarks, Set<Module> modules,
139142
public AddTagDescriptor(AddTagDescriptor addTagDescriptor) {
140143
modules = addTagDescriptor.modules;
141144
ccas = addTagDescriptor.ccas;
142-
ccaPositions = addTagDescriptor.ccaPositions;
145+
majors = addTagDescriptor.majors;
143146
remarks = addTagDescriptor.remarks;
144147
}
145148

@@ -177,15 +180,19 @@ public Optional<Set<Cca>> getCcas() {
177180
* Returns an unmodifiable CCA set, which throws
178181
* {@code UnsupportedOperationException}
179182
* if modification is attempted.
180-
* Returns {@code Optional#empty()} if {@code ccaPositions} is null.
183+
* Returns {@code Optional#empty()} if {@code majors} is null.
181184
*/
182-
public Optional<Set<CcaPosition>> getCcaPositions() {
183-
return (ccaPositions != null) ? Optional.of(Collections.unmodifiableSet(ccaPositions)) : Optional.empty();
185+
public Optional<Set<Major>> getMajors() {
186+
return (majors != null) ? Optional.of(Collections.unmodifiableSet(majors)) : Optional.empty();
184187
}
185188

186189
public boolean isEmpty() {
187190
return (remarks == null || remarks.isEmpty()) && (modules == null || modules.isEmpty())
188-
&& (ccas == null || ccas.isEmpty()) && (ccaPositions == null || ccaPositions.isEmpty());
191+
&& (ccas == null || ccas.isEmpty()) && (majors == null || majors.isEmpty());
192+
}
193+
194+
public int getMajorCount() {
195+
return getMajors().get().size();
189196
}
190197

191198
@Override
@@ -204,7 +211,7 @@ public boolean equals(Object other) {
204211
var e = (AddTagDescriptor) other;
205212

206213
return getRemarks().equals(e.getRemarks()) && getModules().equals(e.getModules())
207-
&& getCcas().equals(e.getCcas()) && getCcaPositions().equals(e.getCcaPositions());
214+
&& getCcas().equals(e.getCcas()) && getMajors().equals(e.getMajors());
208215
}
209216
}
210217
}

src/main/java/seedu/connectus/logic/commands/DeleteTagFromPersonCommand.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import static seedu.connectus.logic.commands.CommandUtil.convertSetToList;
55
import static seedu.connectus.logic.commands.CommandUtil.isIndexValid;
66
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_CCA;
7-
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_CCA_POSITION;
7+
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_MAJOR;
88
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_MODULE;
99
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_REMARK;
1010
import static seedu.connectus.model.Model.PREDICATE_SHOW_ALL_PERSONS;
@@ -30,36 +30,36 @@ public class DeleteTagFromPersonCommand extends Command {
3030
+ "Parameters: PERSON_INDEX (must be a positive integer) "
3131
+ "[" + PREFIX_MODULE + "MODULE]... "
3232
+ "[" + PREFIX_CCA + "CCA]... "
33-
+ "[" + PREFIX_CCA_POSITION + "CCA POSITION]... "
33+
+ "[" + PREFIX_MAJOR + "MAJOR]... "
3434
+ "[" + PREFIX_REMARK + "REMARK]...\n"
3535
+ "Example: " + COMMAND_WORD + " 1 "
3636
+ PREFIX_MODULE + "1 "
3737
+ PREFIX_CCA + "2 "
38-
+ PREFIX_CCA_POSITION + "1 "
38+
+ PREFIX_MAJOR + "1 "
3939
+ PREFIX_REMARK + "1";
4040

4141
public static final String MESSAGE_DELETE_TAG_SUCCESS = "Deleted tag from Person: %1$s";
4242

4343
private final Index personIndex;
4444
private final Index moduleIndex;
4545
private final Index ccaIndex;
46-
private final Index ccaPositionIndex;
46+
private final Index majorIndex;
4747
private final Index remarkIndex;
4848

4949
/**
5050
* @param personIndex of the person in the filtered person list to edit
5151
* @param moduleIndex of the module in the module list to delete
5252
* @param ccaIndex of the CCA in the CCA list to delete
53-
* @param ccaPositionIndex of the CCA Position in the CCA Position list to delete
53+
* @param majorIndex of the CCA Position in the CCA Position list to delete
5454
* @param remarkIndex of the remark in the remark list to delete
5555
*/
56-
public DeleteTagFromPersonCommand(Index personIndex, Index moduleIndex, Index ccaIndex, Index ccaPositionIndex,
56+
public DeleteTagFromPersonCommand(Index personIndex, Index moduleIndex, Index ccaIndex, Index majorIndex,
5757
Index remarkIndex) {
5858
requireNonNull(personIndex);
5959
this.personIndex = personIndex;
6060
this.moduleIndex = moduleIndex;
6161
this.ccaIndex = ccaIndex;
62-
this.ccaPositionIndex = ccaPositionIndex;
62+
this.majorIndex = majorIndex;
6363
this.remarkIndex = remarkIndex;
6464
}
6565

@@ -76,7 +76,7 @@ public CommandResult execute(Model model) throws CommandException {
7676

7777
var editedModules = personToEdit.getModules();
7878
var editedCcas = personToEdit.getCcas();
79-
var editedCcaPositions = personToEdit.getCcaPositions();
79+
var editedMajors = personToEdit.getMajors();
8080
var editedRemarks = personToEdit.getRemarks();
8181

8282
if (moduleIndex != null) {
@@ -95,12 +95,12 @@ public CommandResult execute(Model model) throws CommandException {
9595
editedCcas = createEditedTagList(originalCcas, ccaIndex);
9696
}
9797

98-
if (ccaPositionIndex != null) {
99-
var originalCcaPositions = convertSetToList(personToEdit.getCcaPositions());
100-
if (!isIndexValid(ccaPositionIndex, originalCcaPositions)) {
98+
if (majorIndex != null) {
99+
var originalMajors = convertSetToList(personToEdit.getMajors());
100+
if (!isIndexValid(majorIndex, originalMajors)) {
101101
throw new CommandException(String.format(Messages.MESSAGE_INVALID_DISPLAYED_INDEX, "CCA position"));
102102
}
103-
editedCcaPositions = createEditedTagList(originalCcaPositions, ccaPositionIndex);
103+
editedMajors = createEditedTagList(originalMajors, majorIndex);
104104
}
105105

106106
if (remarkIndex != null) {
@@ -111,7 +111,7 @@ public CommandResult execute(Model model) throws CommandException {
111111
editedRemarks = createEditedTagList(originalRemarks, remarkIndex);
112112
}
113113

114-
var editedPerson = new Person(personToEdit, editedRemarks, editedModules, editedCcas, editedCcaPositions);
114+
var editedPerson = new Person(personToEdit, editedRemarks, editedModules, editedCcas, editedMajors);
115115

116116
model.setPerson(personToEdit, editedPerson);
117117
model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS);
@@ -140,7 +140,7 @@ public boolean equals(Object other) {
140140
return Objects.equals(personIndex, e.personIndex)
141141
&& Objects.equals(moduleIndex, e.moduleIndex)
142142
&& Objects.equals(ccaIndex, e.ccaIndex)
143-
&& Objects.equals(ccaPositionIndex, e.ccaPositionIndex)
143+
&& Objects.equals(majorIndex, e.majorIndex)
144144
&& Objects.equals(remarkIndex, e.remarkIndex);
145145
}
146146
}

src/main/java/seedu/connectus/logic/commands/EditCommand.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import seedu.connectus.model.person.Phone;
3131
import seedu.connectus.model.socialmedia.SocialMedia;
3232
import seedu.connectus.model.tag.Cca;
33-
import seedu.connectus.model.tag.CcaPosition;
33+
import seedu.connectus.model.tag.Major;
3434
import seedu.connectus.model.tag.Module;
3535
import seedu.connectus.model.tag.Remark;
3636

@@ -172,11 +172,11 @@ private static Person createEditedPerson(Person personToEdit, EditPersonDescript
172172
}
173173
}
174174

175-
if (editPersonDescriptor.getCcaPositions().isPresent()) {
176-
p.setCcaPositions(editPersonDescriptor.getCcaPositions().get());
175+
if (editPersonDescriptor.getMajors().isPresent()) {
176+
p.setMajors(editPersonDescriptor.getMajors().get());
177177
} else {
178-
if (!personToEdit.getCcaPositions().isEmpty()) {
179-
p.setCcaPositions(personToEdit.getCcaPositions());
178+
if (!personToEdit.getMajors().isEmpty()) {
179+
p.setMajors(personToEdit.getMajors());
180180
}
181181
}
182182

@@ -216,7 +216,7 @@ public static class EditPersonDescriptor {
216216
private Birthday birthday;
217217
private Set<Module> modules;
218218
private Set<Cca> ccas;
219-
private Set<CcaPosition> ccaPositions;
219+
private Set<Major> majors;
220220

221221
public EditPersonDescriptor() {
222222
}
@@ -234,7 +234,7 @@ public EditPersonDescriptor(EditPersonDescriptor toCopy) {
234234
setRemarks(toCopy.remarks);
235235
setModules(toCopy.modules);
236236
setCcas(toCopy.ccas);
237-
setCcaPositions(toCopy.ccaPositions);
237+
setMajors(toCopy.majors);
238238
setBirthday(toCopy.birthday);
239239
}
240240

@@ -351,21 +351,21 @@ public Optional<Set<Cca>> getCcas() {
351351
}
352352

353353
/**
354-
* Sets {@code ccaPositions} to this object's {@code ccaPositions}.
355-
* A defensive copy of {@code ccaPositions} is used internally.
354+
* Sets {@code majors} to this object's {@code majors}.
355+
* A defensive copy of {@code majors} is used internally.
356356
*/
357-
public void setCcaPositions(Set<CcaPosition> ccaPositions) {
358-
this.ccaPositions = (ccaPositions != null) ? new HashSet<>(ccaPositions) : null;
357+
public void setMajors(Set<Major> majors) {
358+
this.majors = (majors != null) ? new HashSet<>(majors) : null;
359359
}
360360

361361
/**
362-
* Returns an unmodifiable ccaPositions set, which throws
362+
* Returns an unmodifiable majors set, which throws
363363
* {@code UnsupportedOperationException}
364364
* if modification is attempted.
365-
* Returns {@code Optional#empty()} if {@code ccaPositions} is null.
365+
* Returns {@code Optional#empty()} if {@code majors} is null.
366366
*/
367-
public Optional<Set<CcaPosition>> getCcaPositions() {
368-
return (ccaPositions != null) ? Optional.of(Collections.unmodifiableSet(ccaPositions)) : Optional.empty();
367+
public Optional<Set<Major>> getMajors() {
368+
return (majors != null) ? Optional.of(Collections.unmodifiableSet(majors)) : Optional.empty();
369369
}
370370

371371
@Override

src/main/java/seedu/connectus/logic/commands/SearchCommand.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_ADDRESS;
55
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_BIRTHDAY;
66
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_CCA;
7-
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_CCA_POSITION;
87
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_EMAIL;
8+
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_MAJOR;
99
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_MODULE;
1010
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_NAME;
1111
import static seedu.connectus.logic.parser.CliSyntax.PREFIX_PHONE;
@@ -39,7 +39,7 @@ public class SearchCommand extends Command {
3939
+ "[" + PREFIX_BIRTHDAY + "BIRTHDAY] "
4040
+ "[" + PREFIX_MODULE + "MODULE]... "
4141
+ "[" + PREFIX_CCA + "CCA]... "
42-
+ "[" + PREFIX_CCA_POSITION + "CCA_POSITION]... "
42+
+ "[" + PREFIX_MAJOR + "MAJOR]... "
4343
+ "[" + PREFIX_REMARK + "REMARK]...\n"
4444
+ "Example: " + COMMAND_WORD + " "
4545
+ PREFIX_MODULE + "CS" + " "

0 commit comments

Comments
 (0)