package edu.umass.cs.ciir.waltz.dociter.movement;

import edu.umass.cs.ciir.waltz.feature.MoverFeature;

/**
 * @author jfoley
 */
public interface PostingMover<X> extends Mover {
  /** always call matches(doc id) before calling this to make sure you're reading what you think you're reading! */
  X getCurrentPosting();

  /**
   * Turn this mover into a feature!
   * @return this as a feature.
   */
  default MoverFeature<X> getFeature() {
    return new MoverFeature<>(this);
  }
}

@@ -44,16 +44,51 @@
 ement;%0A%0A
+import ciir.jfoley.chai.fn.SinkFn;%0A
 import e
@@ -513,10 +513,180 @@
 s);%0A  %7D%0A
+%0A  default void collectValues(SinkFn%3CX%3E collector) %7B%0A    MoverFeature%3CX%3E feature = getFeature();%0A    execute(input -%3E collector.process(feature.getFeature(input)));%0A  %7D%0A%0A
 %7D%0A

Add PostingMover<T>::collectValues(SinkFn<T>)