Skip to content

Commit

Permalink
Add numberOfLikes and crowdControlRisk fields to class Talk
Browse files Browse the repository at this point in the history
  • Loading branch information
Musa Talluzi authored and ge0ffrey committed Sep 4, 2018
1 parent d7c990a commit 4dcc88f
Show file tree
Hide file tree
Showing 8 changed files with 47 additions and 6 deletions.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Expand Up @@ -48,6 +48,8 @@ public class Talk extends AbstractPersistable {
private Set<String> undesiredRoomTagSet; private Set<String> undesiredRoomTagSet;
private Set<String> mutuallyExclusiveTalksTagSet; private Set<String> mutuallyExclusiveTalksTagSet;
private Set<Talk> prerequisiteTalkSet; private Set<Talk> prerequisiteTalkSet;
private int numberOfLikes;
private int crowdControlRisk;


@PlanningPin @PlanningPin
private boolean pinnedByUser = false; private boolean pinnedByUser = false;
Expand Down Expand Up @@ -435,6 +437,22 @@ public void setPrerequisiteTalkSet(Set<Talk> prerequisiteTalkSet) {
this.prerequisiteTalkSet = prerequisiteTalkSet; this.prerequisiteTalkSet = prerequisiteTalkSet;
} }


public int getNumberOfLikes() {
return numberOfLikes;
}

public void setNumberOfLikes(int numberOfLikes) {
this.numberOfLikes = numberOfLikes;
}

public int getCrowdControlRisk() {
return crowdControlRisk;
}

public void setCrowdControlRisk(int crowdControlRisk) {
this.crowdControlRisk = crowdControlRisk;
}

// ************************************************************************ // ************************************************************************
// With methods // With methods
// ************************************************************************ // ************************************************************************
Expand Down
Expand Up @@ -457,6 +457,8 @@ private void createTalkList(ConferenceSolution solution, int talkListSize) {
talk.setUndesiredRoomTagSet(new LinkedHashSet<>()); talk.setUndesiredRoomTagSet(new LinkedHashSet<>());
talk.setMutuallyExclusiveTalksTagSet(new LinkedHashSet<>()); talk.setMutuallyExclusiveTalksTagSet(new LinkedHashSet<>());
talk.setPrerequisiteTalkSet(new LinkedHashSet<>()); talk.setPrerequisiteTalkSet(new LinkedHashSet<>());
talk.setNumberOfLikes(random.nextInt(1000));
talk.setCrowdControlRisk(random.nextInt(5));
logger.trace("Created talk with code ({}), title ({}) and speakers ({}).", logger.trace("Created talk with code ({}), title ({}) and speakers ({}).",
talk.getCode(), talk.getTitle(), speakerList); talk.getCode(), talk.getTitle(), speakerList);
talkList.add(talk); talkList.add(talk);
Expand Down
Expand Up @@ -444,6 +444,8 @@ private void readTalkList() {
readHeaderCell("Undesired room tags"); readHeaderCell("Undesired room tags");
readHeaderCell("Mutually exclusive talks tags"); readHeaderCell("Mutually exclusive talks tags");
readHeaderCell("Prerequisite talks codes"); readHeaderCell("Prerequisite talks codes");
readHeaderCell("Number of likes");
readHeaderCell("Crowd control risk");
readHeaderCell("Pinned by user"); readHeaderCell("Pinned by user");
readHeaderCell("Timeslot day"); readHeaderCell("Timeslot day");
readHeaderCell("Start"); readHeaderCell("Start");
Expand Down Expand Up @@ -509,12 +511,7 @@ private void readTalkList() {
+ ") must match to the regular expression (" + VALID_TAG_PATTERN + ")."); + ") must match to the regular expression (" + VALID_TAG_PATTERN + ").");
} }
} }
double audienceLevelDouble = nextNumericCell().getNumericCellValue(); talk.setAudienceLevel(getNextStrictlyPositiveIntegerCell(talk.getCode(), "an audience level"));
if (strict && (audienceLevelDouble <= 0 || audienceLevelDouble != Math.floor(audienceLevelDouble))) {
throw new IllegalStateException(currentPosition() + ": The talk with code (" + talk.getCode()
+ ")'s has an audience level (" + audienceLevelDouble + ") that isn't a strictly positive integer number.");
}
talk.setAudienceLevel((int) audienceLevelDouble);
talk.setContentTagSet(Arrays.stream(nextStringCell().getStringCellValue().split(", ")) talk.setContentTagSet(Arrays.stream(nextStringCell().getStringCellValue().split(", "))
.filter(tag -> !tag.isEmpty()).collect(toCollection(LinkedHashSet::new))); .filter(tag -> !tag.isEmpty()).collect(toCollection(LinkedHashSet::new)));
for (String tag : talk.getContentTagSet()) { for (String tag : talk.getContentTagSet()) {
Expand Down Expand Up @@ -552,6 +549,8 @@ private void readTalkList() {
.filter(tag -> !tag.isEmpty()).collect(Collectors.toCollection(LinkedHashSet::new))); .filter(tag -> !tag.isEmpty()).collect(Collectors.toCollection(LinkedHashSet::new)));
talkToPrerequisiteTalkSetMap.put(talk, Arrays.stream(nextStringCell().getStringCellValue().split(", ")) talkToPrerequisiteTalkSetMap.put(talk, Arrays.stream(nextStringCell().getStringCellValue().split(", "))
.filter(tag -> !tag.isEmpty()).collect(Collectors.toCollection(LinkedHashSet::new))); .filter(tag -> !tag.isEmpty()).collect(Collectors.toCollection(LinkedHashSet::new)));
talk.setNumberOfLikes(getNextPositiveIntegerCell(talk.getCode(), "a number of likes"));
talk.setCrowdControlRisk(getNextPositiveIntegerCell(talk.getCode(), "a crowd control risk"));
talk.setPinnedByUser(nextBooleanCell().getBooleanCellValue()); talk.setPinnedByUser(nextBooleanCell().getBooleanCellValue());
String dateString = nextStringCell().getStringCellValue(); String dateString = nextStringCell().getStringCellValue();
String startTimeString = nextStringCell().getStringCellValue(); String startTimeString = nextStringCell().getStringCellValue();
Expand Down Expand Up @@ -595,6 +594,24 @@ private void readTalkList() {
solution.setTalkList(talkList); solution.setTalkList(talkList);
} }


private int getNextStrictlyPositiveIntegerCell(String talkCode, String columnName) {
double cellValueDouble = nextNumericCell().getNumericCellValue();
if (strict && (cellValueDouble <= 0 || cellValueDouble != Math.floor(cellValueDouble))) {
throw new IllegalStateException(currentPosition() + ": The talk with code (" + talkCode
+ ")'s has " + columnName + " (" + cellValueDouble + ") that isn't a strictly positive integer number.");
}
return (int) cellValueDouble;
}

private int getNextPositiveIntegerCell(String talkCode, String columnName) {
double cellValueDouble = nextNumericCell().getNumericCellValue();
if (strict && (cellValueDouble < 0 || cellValueDouble != Math.floor(cellValueDouble))) {
throw new IllegalStateException(currentPosition() + ": The talk with code (" + talkCode
+ ")'s has " + columnName + " (" + cellValueDouble + ") that isn't a positive integer number.");
}
return (int) cellValueDouble;
}

private void verifyTimeslotTags(Set<String> timeslotTagSet) { private void verifyTimeslotTags(Set<String> timeslotTagSet) {
for (String tag : timeslotTagSet) { for (String tag : timeslotTagSet) {
if (!totalTimeslotTagSet.contains(tag)) { if (!totalTimeslotTagSet.contains(tag)) {
Expand Down Expand Up @@ -883,6 +900,8 @@ private void writeTalkList() {
nextHeaderCell("Undesired room tags"); nextHeaderCell("Undesired room tags");
nextHeaderCell("Mutually exclusive talks tags"); nextHeaderCell("Mutually exclusive talks tags");
nextHeaderCell("Prerequisite talks codes"); nextHeaderCell("Prerequisite talks codes");
nextHeaderCell("Number of likes");
nextHeaderCell("Crowd control risk");
nextHeaderCell("Pinned by user"); nextHeaderCell("Pinned by user");
nextHeaderCell("Timeslot day"); nextHeaderCell("Timeslot day");
nextHeaderCell("Start"); nextHeaderCell("Start");
Expand Down Expand Up @@ -911,6 +930,8 @@ private void writeTalkList() {
nextCell().setCellValue(String.join(", ", talk.getUndesiredRoomTagSet())); nextCell().setCellValue(String.join(", ", talk.getUndesiredRoomTagSet()));
nextCell().setCellValue(String.join(", ", talk.getMutuallyExclusiveTalksTagSet())); nextCell().setCellValue(String.join(", ", talk.getMutuallyExclusiveTalksTagSet()));
nextCell().setCellValue(String.join(", ", talk.getPrerequisiteTalkSet().stream().map(Talk::getCode).collect(toList()))); nextCell().setCellValue(String.join(", ", talk.getPrerequisiteTalkSet().stream().map(Talk::getCode).collect(toList())));
nextCell().setCellValue(talk.getNumberOfLikes());
nextCell().setCellValue(talk.getCrowdControlRisk());
nextCell(talk.isPinnedByUser() ? pinnedStyle : defaultStyle).setCellValue(talk.isPinnedByUser()); nextCell(talk.isPinnedByUser() ? pinnedStyle : defaultStyle).setCellValue(talk.isPinnedByUser());
nextCell().setCellValue(talk.getTimeslot() == null ? "" : DAY_FORMATTER.format(talk.getTimeslot().getDate())); nextCell().setCellValue(talk.getTimeslot() == null ? "" : DAY_FORMATTER.format(talk.getTimeslot().getDate()));
nextCell().setCellValue(talk.getTimeslot() == null ? "" : TIME_FORMATTER.format(talk.getTimeslot().getStartDateTime())); nextCell().setCellValue(talk.getTimeslot() == null ? "" : TIME_FORMATTER.format(talk.getTimeslot().getStartDateTime()));
Expand Down

0 comments on commit 4dcc88f

Please sign in to comment.