/** * This function expects to receive a list ordered by number (Ascending) and version (Descending) * * @param guides * @return The latest version for the guides */ private List getLatestVersions(List guides) { List result = new ArrayList(); Integer numberAux = null; Collections.reverse(guides); Iterator iterator = guides.iterator(); while (iterator.hasNext()) { Guide guide = (Guide) iterator.next(); if ((numberAux == null) || (numberAux.intValue() != guide.getNumber().intValue())) { numberAux = guide.getNumber(); InfoGuide infoGuide = InfoGuideWithPersonAndExecutionDegreeAndContributor.newInfoFromDomain(guide); List infoReimbursementGuides = new ArrayList(); if (guide.getReimbursementGuides() != null) { Iterator iter = guide.getReimbursementGuides().iterator(); while (iter.hasNext()) { ReimbursementGuide reimbursementGuide = (ReimbursementGuide) iter.next(); InfoReimbursementGuide infoReimbursementGuide = InfoReimbursementGuide.newInfoFromDomain(reimbursementGuide); infoReimbursementGuides.add(infoReimbursementGuide); } } infoGuide.setInfoReimbursementGuides(infoReimbursementGuides); result.add(infoGuide); } } Collections.reverse(result); return result; }