code: 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;
      }
  }
  