}
private InfoSiteShiftsAndGroups readShiftAndGroups(String groupPropertiesCode, String shiftCode) throws ExcepcaoInexistente,
FenixServiceException {
InfoSiteShiftsAndGroups infoSiteShiftsAndGroups = new InfoSiteShiftsAndGroups();
Grouping grouping = FenixFramework.getDomainObject(groupPropertiesCode);
if (grouping == null) {
return null;
}
Shift shift = FenixFramework.getDomainObject(shiftCode);
List<InfoSiteGroupsByShift> infoSiteGroupsByShiftList = new ArrayList<InfoSiteGroupsByShift>();
InfoSiteShift infoSiteShift = new InfoSiteShift();
infoSiteShift.setInfoShift(InfoShift.newInfoFromDomain(shift));
List allStudentGroups = grouping.readAllStudentGroupsBy(shift);
if (grouping.getDifferentiatedCapacity()) {
Integer vagas = shift.getShiftGroupingProperties().getCapacity();
infoSiteShift.setNrOfGroups(vagas);
} else {
if (grouping.getGroupMaximumNumber() != null) {
int vagas = grouping.getGroupMaximumNumber().intValue() - allStudentGroups.size();
infoSiteShift.setNrOfGroups(Integer.valueOf(vagas));
} else {
infoSiteShift.setNrOfGroups("Sem limite");
}
}
InfoSiteGroupsByShift infoSiteGroupsByShift = new InfoSiteGroupsByShift();
infoSiteGroupsByShift.setInfoSiteShift(infoSiteShift);
List<InfoSiteStudentGroup> infoSiteStudentGroupsList = null;
if (allStudentGroups.size() != 0) {
infoSiteStudentGroupsList = new ArrayList<InfoSiteStudentGroup>();
Iterator iterGroups = allStudentGroups.iterator();
while (iterGroups.hasNext()) {
InfoSiteStudentGroup infoSiteStudentGroup = new InfoSiteStudentGroup();
InfoStudentGroup infoStudentGroup = new InfoStudentGroup();
infoStudentGroup = InfoStudentGroup.newInfoFromDomain((StudentGroup) iterGroups.next());
infoSiteStudentGroup.setInfoStudentGroup(infoStudentGroup);
infoSiteStudentGroupsList.add(infoSiteStudentGroup);
}
Collections.sort(infoSiteStudentGroupsList, InfoSiteStudentGroup.COMPARATOR_BY_NUMBER);
}
infoSiteGroupsByShift.setInfoSiteStudentGroupsList(infoSiteStudentGroupsList);
infoSiteGroupsByShiftList.add(infoSiteGroupsByShift);
infoSiteShiftsAndGroups.setInfoSiteGroupsByShiftList(infoSiteGroupsByShiftList);
return infoSiteShiftsAndGroups;
}