class SkipCheckingListener {

	private static final Log logger = LogFactory.getLog(SkipCheckingListener.class);

	private static int processSkips;

	@AfterStep
	public ExitStatus checkForSkips(StepExecution stepExecution) {<FILL_FUNCTION_BODY>}

	/**
	 * Convenience method for testing
	 * @return the processSkips
	 */
	public static int getProcessSkips() {
		return processSkips;
	}

	/**
	 * Convenience method for testing
	 */
	public static void resetProcessSkips() {
		processSkips = 0;
	}

	@OnSkipInWrite
	public void skipWrite(Trade trade, Throwable t) {
		logger.debug("Skipped writing " + trade);
	}

	@OnSkipInProcess
	public void skipProcess(Trade trade, Throwable t) {
		logger.debug("Skipped processing " + trade);
		processSkips++;
	}

	@BeforeStep
	public void saveStepName(StepExecution stepExecution) {
		stepExecution.getExecutionContext().put("stepName", stepExecution.getStepName());
	}

}

		if (!stepExecution.getExitStatus().getExitCode().equals(ExitStatus.FAILED.getExitCode())
				&& stepExecution.getSkipCount() > 0) {
			return new ExitStatus("COMPLETED WITH SKIPS");
		}
		else {
			return null;
		}
	
<no_super_class>