package com.yoursway.rails.model.tests.layer1.timeline; import com.yoursway.model.repository.IConsumer; import com.yoursway.model.repository.IResolver; import com.yoursway.model.repository.NoSuchHandleException; public abstract class CheckingConsumer implements IConsumer { private AssertionError error = null; private int callsCounter = 0; public void consume(IResolver resolver) { if (error == null) { try { consumeInternal(resolver); } catch (AssertionError e) { this.error = e; } catch (NoSuchHandleException e) { e.printStackTrace(); } } callsCounter++; } public int callsCount() { return callsCounter; } public void check() { if (error != null) throw error; } protected abstract void consumeInternal(IResolver resolver) throws NoSuchHandleException; public AssertionError error() { return error; } }