/** Method responsible for updates on result participations order. */ private void reOrderParticipations(List<ResultParticipation> newParticipationsOrder) { int order = 0; for (ResultParticipation participation : newParticipationsOrder) { int index = this.getResultParticipations().indexOf(participation); ResultParticipation aux = this.getResultParticipations().get(index); aux.setPersonOrder(order++); } }
private List<ResultParticipation> filterResultParticipationsByRole(ResultParticipationRole role) { List<ResultParticipation> authorsParticipations = new ArrayList<ResultParticipation>(); for (ResultParticipation participation : getResultParticipations()) { if (participation.getRole().equals(role)) { authorsParticipations.add(participation); } } return authorsParticipations; }
/** * Returns true if already exists a result participation with the given person. (Role not * relevant. Used for access control verification). */ public boolean hasPersonParticipation(Person person) { if (this.hasAnyResultParticipations()) { for (ResultParticipation participation : this.getResultParticipations()) { if (participation.getPerson() != null && participation.getPerson().equals(person)) { return true; } } } return false; }
@Checked("ResultPredicates.writePredicate") public void removeParticipation(ResultParticipation participation) { Person person = participation.getPerson(); if (person.equals(this.getCreator())) { throw new DomainException("error.researcher.Result.cannotRemoveCreatorParticipation"); } else { participation.deleteIfNotLast(); this.reOrderParticipations(this.getOrderedResultParticipations()); updateModifiedByAndDate(); } }
protected String getParticipationsAndTitleString() { String resume = ""; int i = 0; for (ResultParticipation participation : getOrderedResultParticipations()) { resume = resume + participation.getPerson().getName(); i++; if (i < getResultParticipationsCount()) { resume = resume + ", "; } else { resume = resume + " - "; } } resume = resume + getTitle() + " - "; return resume; }