public void setFrameOutput(String varName, FrameBlock outputData) throws DMLRuntimeException {
    FrameObject fo = getFrameObject(varName);
    if (outputData.getNumColumns() > 0 && outputData.getSchema() != null)
      fo.setValueType(outputData.getSchema()[0]);
    fo.acquireModify(outputData);
    fo.release();

    setVariable(varName, fo);
  }
 /**
  * Unpins a currently pinned frame variable.
  *
  * @param varName variable name
  * @throws DMLRuntimeException if DMLRuntimeException occurs
  */
 public void releaseFrameInput(String varName) throws DMLRuntimeException {
   FrameObject fo = getFrameObject(varName);
   fo.release();
 }
 /**
  * Pins a frame variable into memory and returns the internal frame block.
  *
  * @param varName variable name
  * @return frame block
  * @throws DMLRuntimeException if DMLRuntimeException occurs
  */
 public FrameBlock getFrameInput(String varName) throws DMLRuntimeException {
   FrameObject fo = getFrameObject(varName);
   return fo.acquireRead();
 }