private Frame closeFrame ( Key key , String [ ] names , String [ ] [ ] domains , Futures fs ) { if ( _output_types == null ) return null ; final int noutputs = _output_types . length ; Vec [ ] vecs = new Vec [ noutputs ] ; if ( _appendables == null || _appendables . length == 0 ) // Zero rows? for ( int i = 0 ; i < noutputs ; i ++ ) vecs [ i ] = _fr . anyVec ( ) . makeZero ( ) ; else { int rowLayout = _appendables [ 0 ] . compute_rowLayout ( ) ; for ( int i = 0 ; i < noutputs ; i ++ ) { _appendables [ i ] . setDomain ( domains == null ? null : domains [ i ] ) ; vecs [ i ] = _appendables [ i ] . close ( rowLayout , fs ) ; } } return new Frame ( key , names , vecs ) ; }
the work - horse for the outputFrame calls