package org.gridkit.jvmtool.stacktrace; import java.io.IOException; import org.gridkit.jvmtool.stacktrace.StackTraceReader.StackTraceReaderDelegate; public abstract class FilteredStackTraceReader extends StackTraceReaderDelegate { private StackTraceReader delegate; public FilteredStackTraceReader(StackTraceReader delegate) { super(); this.delegate = delegate; } protected abstract boolean evaluate(); @Override protected StackTraceReader getReader() { return delegate; } @Override public boolean loadNext() throws IOException { while(delegate.loadNext()) { if (evaluate()) { return true; } } return false; } }