public ArrayList<Spot> getData() throws EmptyFieldsException, SpotDurationException {
	ArrayList<Spot> spotArrayList = new ArrayList<Spot>();

	for (int i = 0; i < rows; i++) {
	    if ((!fieldClientSpotDuration[i].getText().trim().isEmpty())
		    || (!fieldPartnerSpotDuration[i].getText().trim().isEmpty())
		    || (!fieldSpotShare[i].getText().trim().isEmpty())) {

		if ((!fieldClientSpotDuration[i].getText().trim().isEmpty())
			&& (!fieldPartnerSpotDuration[i].getText().trim().isEmpty())
			&& (!fieldSpotShare[i].getText().trim().isEmpty())) {

		    // System.out.println("row " + i + " is OK");
		    String name;
		    int clientSpotDuration;
		    int partnersSpotDuration;
		    int spotShare;
		    Date startDate;
		    Date endDate;

		    if (!fieldName[i].getText().isEmpty()) {
			name = fieldName[i].getText();
		    } else {
			name = new String();
		    }
		    clientSpotDuration = Integer.parseInt(fieldClientSpotDuration[i].getText().trim());
		    partnersSpotDuration = Integer.parseInt(fieldPartnerSpotDuration[i].getText().trim());
		    spotShare = Integer.parseInt(fieldSpotShare[i].getText().trim().replaceAll("%", ""));
		    startDate = startDatePicker[i].getDate();
		    endDate = endDatePicker[i].getDate();

		    if (clientSpotDuration >= partnersSpotDuration) {
			spotArrayList.add(new Spot(name, clientSpotDuration, partnersSpotDuration, spotShare,
				startDate, endDate));
		    } else {
			throw new SpotDurationException(i);
		    }

		} else {
		    throw new EmptyFieldsException(i);
		}

	    }
	}

	return spotArrayList;
    }