class GeneratingTradeItemReader implements ItemReader<Trade> {

	private int limit = 1;

	private int counter = 0;

	@Nullable
	@Override
	public Trade read() throws Exception {<FILL_FUNCTION_BODY>}

	/**
	 * @param limit number of items that will be generated (null returned on consecutive
	 * calls).
	 */
	public void setLimit(int limit) {
		this.limit = limit;
	}

	public int getCounter() {
		return counter;
	}

	public int getLimit() {
		return limit;
	}

	public void resetCounter() {
		this.counter = 0;
	}

}

		if (counter < limit) {
			counter++;
			return new Trade("isin" + counter, counter, new BigDecimal(counter), "customer" + counter);
		}
		return null;
	
<no_super_class>