public Integer getStudentNumberForShiftDistributionBasedOn(Integer studentNumberPosition) { final List<Integer> abstractStudentNumbers = new ArrayList<Integer>(); for (final ShiftDistributionEntry shiftDistributionEntry : getShiftDistributionEntriesSet()) { if (!abstractStudentNumbers.contains(shiftDistributionEntry.getAbstractStudentNumber())) { abstractStudentNumbers.add(shiftDistributionEntry.getAbstractStudentNumber()); } } Collections.sort(abstractStudentNumbers); return !abstractStudentNumbers.isEmpty() ? abstractStudentNumbers.get(studentNumberPosition) : null; }
private List<ShiftDistributionEntry> getShiftsFor( Integer studentNumber, boolean alreadyDistributed) { final List<ShiftDistributionEntry> result = new ArrayList<ShiftDistributionEntry>(); for (final ShiftDistributionEntry shiftDistributionEntry : getShiftDistributionEntriesSet()) { if (shiftDistributionEntry.getDistributed().booleanValue() == alreadyDistributed && shiftDistributionEntry.getAbstractStudentNumber().equals(studentNumber)) { result.add(shiftDistributionEntry); } } return result; }
public List<ShiftDistributionEntry> getNextFreeShiftDistributions() { final ArrayList<ShiftDistributionEntry> entries = new ArrayList<ShiftDistributionEntry>(getShiftDistributionEntriesSet()); Collections.sort(entries, ShiftDistributionEntry.NUMBER_COMPARATOR); for (final ShiftDistributionEntry shiftDistributionEntry : entries) { if (!shiftDistributionEntry.getDistributed()) { return ShiftDistributionEntry.readByAbstractNumber( shiftDistributionEntry.getAbstractStudentNumber(), getExecutionYear()); } } return Collections.emptyList(); }