package hex.createframe;
import water.Iced;
import water.fvec.Frame;
import java.util.Random;
/**
* <p>Base class for any "postprocessing" steps that should be undertaken after
* the frame has been created using {@link CreateFrameColumnMaker}s.</p>
*
* <p>Each postprocess step takes a frame as an input, and then modifies it
* in-place. Examples of such postprocessing tasks could be: column renaming /
* reordering; removal of some temporary columns; etc.</p>
*/
public abstract class CreateFramePostprocessStep extends Iced<CreateFramePostprocessStep> {
/**
* This method performs the actual work of the postprocessing task.
*
* @param fr Frame that the task modifies.
* @param rng Random number generator to use if the task needs to modify the
* frame randomly.
*/
public abstract void exec(Frame fr, Random rng);
/**
* Approximate work amount for this step. The default value of 100 is the
* same as each column maker's amount of work per chunk.
*/
public int workAmount() {
return 100;
}
}