class SingleItemPeekableItemReaderBuilder<T> {

	private ItemReader<T> delegate;

	/**
	 * The item reader to use as a delegate. Items are read from the delegate and passed
	 * to the caller in
	 * {@link org.springframework.batch.item.support.SingleItemPeekableItemReader#read()}.
	 * @param delegate the delegate to set
	 * @return this instance for method chaining
	 * @see SingleItemPeekableItemReader#setDelegate(ItemReader)
	 */
	public SingleItemPeekableItemReaderBuilder<T> delegate(ItemReader<T> delegate) {
		this.delegate = delegate;

		return this;
	}

	/**
	 * Returns a fully constructed {@link SingleItemPeekableItemReader}.
	 * @return a new {@link SingleItemPeekableItemReader}
	 */
	public SingleItemPeekableItemReader<T> build() {<FILL_FUNCTION_BODY>}

}

		Assert.notNull(this.delegate, "A delegate is required");

		SingleItemPeekableItemReader<T> reader = new SingleItemPeekableItemReader<>();
		reader.setDelegate(this.delegate);
		return reader;
	
<no_super_class>