/* * Created on 19.8.2004 */ package is.idega.idegaweb.marathon.business; import is.idega.idegaweb.marathon.data.Participant; import is.idega.idegaweb.marathon.data.ParticipantHome; import java.rmi.RemoteException; import java.util.Collection; import java.util.Iterator; import java.util.List; import javax.transaction.SystemException; import javax.transaction.UserTransaction; import com.idega.block.importer.data.ImportFile; import com.idega.business.IBOServiceBean; import com.idega.data.IDOLookup; import com.idega.user.data.Group; /** * @author laddi */ public class RunChipNumberImportBean extends IBOServiceBean implements RunChipNumberImport{ private UserTransaction transaction; private ImportFile file; /* (non-Javadoc) * @see com.idega.block.importer.business.ImportFileHandler#getFailedRecords() */ public List getFailedRecords() throws RemoteException { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see com.idega.block.importer.business.ImportFileHandler#handleRecords() */ public boolean handleRecords() throws RemoteException { transaction = getSessionContext().getUserTransaction(); try { transaction.begin(); String item; int count = 1; String chipBunchNumber = file.getFile().getName(); chipBunchNumber = chipBunchNumber.substring(chipBunchNumber.indexOf("_") + 1); ParticipantHome runHome = (ParticipantHome) IDOLookup.getHome(Participant.class); Collection runners = runHome.findAllWithoutChipNumber(126); if (!runners.isEmpty()) { int runnersCount = runners.size(); Iterator iterator = runners.iterator(); while ( !(item=(String)file.getNextRecord()).equals("") && iterator.hasNext() ) { Participant runner = (Participant) iterator.next(); String chipNumber = file.getValueAtIndexFromRecordString(1, item); runner.setChipNumber(chipNumber); runner.setChipBunchNumber(chipBunchNumber); runner.store(); System.out.println("Processed record number: "+ (count++) + " of total runners: " + runnersCount); } } else { System.out.println("No runners without chip number..."); } transaction.commit(); } catch (Exception ex) { ex.printStackTrace(); try { transaction.rollback(); } catch (SystemException e) { e.printStackTrace(); } return false; } return true; } public void log(String msg){ super.log("[Missing Names Import Handler] "+msg); } /* (non-Javadoc) * @see com.idega.block.importer.business.ImportFileHandler#setImportFile(com.idega.block.importer.data.ImportFile) */ public void setImportFile(ImportFile file) throws RemoteException { this.file = file; } /* (non-Javadoc) * @see com.idega.block.importer.business.ImportFileHandler#setRootGroup(com.idega.user.data.Group) */ public void setRootGroup(Group rootGroup) throws RemoteException { } }