public boolean addShift(Shift aShift) { boolean wasAdded = false; if (shifts.contains(aShift)) { return false; } if (shifts.contains(aShift)) { return false; } if (shifts.contains(aShift)) { return false; } Employee existingEmployee = aShift.getEmployee(); boolean isNewEmployee = existingEmployee != null && !this.equals(existingEmployee); if (isNewEmployee && existingEmployee.numberOfShifts() <= minimumNumberOfShifts()) { return wasAdded; } if (isNewEmployee) { aShift.setEmployee(this); } else { shifts.add(aShift); } wasAdded = true; return wasAdded; }