Package water.api

Source Code of water.api.CascadeHandler$Cascade

package water.api;

import water.H2O;
import water.Iced;
import water.Key;
import water.api.CascadeHandler.Cascade;
import water.cascade.Env;
import water.fvec.Frame;
import water.util.Log;

class CascadeHandler extends Handler<Cascade, CascadeV1> {

  @Override protected int min_ver() { return 1; }
  @Override protected int max_ver() { return Integer.MAX_VALUE; }

  @Override protected void compute2() { throw H2O.fail(); }

  /**
   *  Cascade: A process in which information is successively passed on.
   */
  protected static final class Cascade extends Iced {
    // Inputs
    String _ast; // A Lisp-like ast.
    //TODO: String[] _funs //

    //Outputs
    String _error;
    Key      _key;
    long     _num_rows;
    int      _num_cols;
    double   _scalar;
    String   _string;
    String   _funstr;
    String[] _col_names;
    String   _result;
  }

  CascadeV1 exec(int version, Cascade cascade) {
    Throwable e;
    Env env = null;
    try {
      env = water.cascade.Exec.exec(cascade._ast);
      StringBuilder sb = env._sb;
      if( sb.length()!=0 ) sb.append("\n");
      if (env.isAry()) {
        Frame fr = env.popAry();
        cascade._key = fr._key;
        cascade._num_rows = fr.numRows();
        cascade._num_cols = fr.numCols();
        cascade._col_names = fr.names();
        cascade._string = null;
        //TODO: colSummary  cols = new Inspect2.ColSummary[num_cols];
      } else if (env.isNum()) {
        cascade._scalar = env.popDbl();
        sb.append(Double.toString(cascade._scalar));
        cascade._string = null;
      } else if (env.isStr()) {
        cascade._string = env.popStr();
        sb.append(cascade._string);
      }
      cascade._result = sb.toString();
      return schema(version).fillFromImpl(cascade);
    }
    catch( IllegalArgumentException pe ) { e=pe;}
    catch( Throwable e2 ) { Log.err(e=e2); }
    finally {
      if (env != null) {
        try {env.remove_and_unlock(); }
        catch (Exception xe) { Log.err("env.remove_and_unlock() failed", xe); }
      }
    }
    return schema(version).fillFromImpl(cascade);
  }

  @Override protected CascadeV1 schema(int version) { return new CascadeV1(); }
}
TOP

Related Classes of water.api.CascadeHandler$Cascade

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.