package water.api;
import hex.CreateFrame;
import hex.createframe.recipes.SimpleCreateFrameRecipe;
import water.Job;
import water.Key;
import water.api.schemas3.CreateFrameV3;
import water.api.schemas3.JobV3;
import water.api.schemas3.KeyV3;
import water.api.schemas4.input.CreateFrameSimpleIV4;
import water.api.schemas4.output.JobV4;
import water.fvec.Frame;
public class CreateFrameHandler extends Handler {
public JobV3 run(int version, CreateFrameV3 cf) {
if (cf.dest == null) {
cf.dest = new KeyV3.FrameKeyV3();
cf.dest.name = Key.rand();
}
CreateFrame cfr = new CreateFrame(cf.dest.key());
cf.fillImpl(cfr);
return new JobV3(cfr.execImpl());
}
public static class CreateSimpleFrame extends RestApiHandler<CreateFrameSimpleIV4, JobV4> {
@Override public String name() {
return "createSimpleFrame";
}
@Override public String help() {
return "Create frame with random (uniformly distributed) data. You can specify " +
"how many columns of each type to make; and what the desired range for " +
"each column type.";
}
@Override
public JobV4 exec(int ignored, CreateFrameSimpleIV4 input) {
SimpleCreateFrameRecipe cf = input.createAndFillImpl();
Job<Frame> job = cf.exec();
return new JobV4().fillFromImpl(job);
}
}
}