DataBlock d = new DataBlock(count-ndx, buffer, 0, ndx); for (Iterator it = listeners.listIterator(); it.hasNext(); ) { MatcherListener l = (MatcherListener) it.next(); l.update(d);
int off = Math.max(0, ndx-config.blockLength); int len = Math.min(ndx, config.blockLength); config.weakSum.check(buffer, off, len); Long oldOff = hashSearch(buffer, off, len); if (oldOff != null) { if (off > 0) { DataBlock d = new DataBlock(count-ndx, buffer, 0, off); for (Iterator it = listeners.listIterator(); it.hasNext(); ) { MatcherListener l = (MatcherListener) it.next(); l.update(new MatcherEvent(d)); } } Offsets o = new Offsets(oldOff.longValue(), count-len, len); for (Iterator it = listeners.listIterator(); it.hasNext(); ) { MatcherListener l = (MatcherListener) it.next(); l.update(new MatcherEvent(o)); } } else { DataBlock d = new DataBlock(count-ndx, buffer, 0, ndx); for (Iterator it = listeners.listIterator(); it.hasNext(); ) { MatcherListener l = (MatcherListener) it.next(); l.update(new MatcherEvent(d)); }
   public void doFinal() {      if (ndx > 0) {         DataBlock d = new DataBlock(count-ndx, buffer, 0, ndx);         for (Iterator it = listeners.listIterator(); it.hasNext(); ) {            MatcherListener l = (MatcherListener) it.next();            l.update(d);         }      }      reset();   }