/* * Created on 31.3.2004 */ package se.idega.idegaweb.commune.accounting.update.business; import java.rmi.RemoteException; import java.util.Collection; import java.util.Iterator; import javax.ejb.FinderException; import javax.ejb.RemoveException; import com.idega.block.school.business.SchoolBusiness; import com.idega.block.school.data.SchoolClass; import com.idega.block.school.data.SchoolClassMember; import com.idega.business.IBOLookup; import com.idega.business.IBORuntimeException; import com.idega.business.IBOServiceBean; import com.idega.data.IDOAddRelationshipException; /** * @author laddi */ public class SchoolSubGroupPlacementsBusinessBean extends IBOServiceBean implements SchoolSubGroupPlacementsBusiness { private SchoolBusiness getSchoolBusiness() { try { return (SchoolBusiness) IBOLookup.getServiceInstance(getIWApplicationContext(), SchoolBusiness.class); } catch (RemoteException e) { throw new IBORuntimeException(e); } } public void changeSubGroupPlacements() { try { Collection placements = getSchoolBusiness().getSchoolClassMemberHome().findSubGroupPlacements(); Iterator iter = placements.iterator(); while (iter.hasNext()) { SchoolClassMember placement = (SchoolClassMember) iter.next(); SchoolClass group = placement.getSchoolClass(); try { SchoolClassMember mainPlacement = getSchoolBusiness().getSchoolClassMemberHome().findByUserAndSchoolAndSeason(placement.getClassMemberId(), group.getSchoolId(), group.getSchoolSeasonId()); mainPlacement.addToGroup(group); placement.remove(); } catch (FinderException fe) { log("No main group placement found for: " + placement.getClassMemberId()); } catch (IDOAddRelationshipException e) { log("Could not add " + placement.getClassMemberId() + " to sub group " + group.getPrimaryKey()); } catch (RemoveException e) { log("Could not remove " + placement.getClassMemberId() + " from group " + group.getPrimaryKey()); } } } catch (RemoteException re) { re.printStackTrace(); } catch (FinderException fe) { log("No sub group placements found."); } } }