participant.setRunGroupName(group);
	private boolean handleLine(String line) {		ArrayList values = file.getValuesFromRecordString(line);		int size = values.size();		boolean validLine = true;				String participantNumber = (String) values.get(0);		String gender = (String) values.get(1);		String dateOfBirth = (String) values.get(2);		String name = (String) values.get(3);		String personalID = (String) values.get(4);		String nationality = (String) values.get(5);		String chipTime = (String) values.get(6);		String runTime = (String) values.get(7);		String run = (String) values.get(8);		String distance = (String) values.get(9);		String year = (String) values.get(10);		String group = (String) values.get(11);		String chipNumber = (String) values.get(12);				int number = -1;		try {			number = Integer.parseInt(participantNumber);		} catch (NumberFormatException n) {			System.out.println("not using line... starts with : " +participantNumber);			validLine = false;		}				if (validLine) {			String countryPK = null;						Iterator iter = countries.iterator();			Country country = null;			boolean found = false;			while (iter.hasNext() && !found) {				country = (Country) iter.next();				found = nationality.equals(country.getIsoAbbreviation());				break;			}						IWTimestamp birth = new IWTimestamp(dateOfBirth);			try {				Group runGroup = null;				Iterator iterator = runs.iterator();				while (iterator.hasNext()) {					Group element = (Group) iterator.next();					if (element.getName().equals(run)) {						runGroup = element;						break;					}				}								Group yearGroup = null;				iterator = runGroup.getChildrenIterator();				while (iterator.hasNext()) {					Group element = (Group) iterator.next();					if (element.getName().equals(year)) {						yearGroup = element;						break;					}				}								Group distanceGroup = null;				Collection distances = business.getDistancesMap(runGroup, year);				iterator = distances.iterator();				while (iterator.hasNext()) {					Group element = (Group) iterator.next();					if (element.getName().equals(distance)) {						distanceGroup = element;						break;					}				}							if (validLine) {					User user = null;					try {						if (personalID.length() > 0) {							user = business.getUserBiz().getUser(personalID);						}						else {							user = business.getUserBiz().getUserHome().findByDateOfBirthAndName(birth.getDate(), name);						}					}					catch (FinderException fe) {						System.out.println("User not found, creating...");;					}					if (user == null) {						try {							Gender theGender = genderBusiness.getGender(new Integer(gender));							Name fullName = new Name(name);							user = business.getUserBiz().createUser(fullName.getFirstName(), fullName.getMiddleName(), fullName.getLastName(), personalID, theGender, birth);						}						catch (FinderException fe) {							System.err.println("Gender not found");							return false;						}						catch (CreateException ce) {							ce.printStackTrace();							return false;						}					}										Participant participant = null;					try {						participant = business.getParticipantByRunAndYear(user, runGroup, yearGroup);					}					catch (FinderException fe) {						try {							participant = business.importParticipant(user, runGroup, yearGroup, distanceGroup, country);						}						catch (CreateException ce) {							ce.printStackTrace();							return false;						}					}					participant.setChipNumber(chipNumber);					participant.setUserNationality(nationality);					business.updateRunForParticipant(participant, number, runTime, chipTime);					return true;				}			}			catch (RemoteException e1) {				e1.printStackTrace();				return false;			}		}		return false;	}