@Override public StepInterface getStep( StepMeta stepMeta, StepDataInterface stepDataInterface, int cnr, TransMeta tr, Trans trans ) { return new CubeInput( stepMeta, stepDataInterface, cnr, tr, trans ); }
@Override public boolean processRow( StepMetaInterface smi, StepDataInterface sdi ) throws KettleException { if ( first ) { first = false; meta = (CubeInputMeta) smi; data = (CubeInputData) sdi; realRowLimit = Const.toInt( environmentSubstitute( meta.getRowLimit() ), 0 ); } try { Object[] r = data.meta.readData( data.dis ); putRow( data.meta, r ); // fill the rowset(s). (sleeps if full) incrementLinesInput(); if ( realRowLimit > 0 && getLinesInput() >= realRowLimit ) { // finished! setOutputDone(); return false; } } catch ( KettleEOFException eof ) { setOutputDone(); return false; } catch ( SocketTimeoutException e ) { throw new KettleException( e ); // shouldn't happen on files } if ( checkFeedback( getLinesInput() ) ) { if ( log.isBasic() ) { logBasic( BaseMessages.getString( PKG, "CubeInput.Log.LineNumber" ) + getLinesInput() ); } } return true; }
String filename = environmentSubstitute( meta.getFilename() ); ResultFile resultFile = new ResultFile( ResultFile.FILE_TYPE_GENERAL, KettleVFS.getFileObject( filename, getTransMeta() ), getTransMeta().getName(), toString() ); resultFile.setComment( "File was read by a Cube Input step" ); addResultFile( resultFile ); return true; } catch ( KettleFileException kfe ) { logError( BaseMessages.getString( PKG, "CubeInput.Log.UnableToReadMetadata" ), kfe ); return false; logError( BaseMessages.getString( PKG, "CubeInput.Log.ErrorReadingFromDataCube" ), e );
/** * Initialize for processing specified file. */ protected void init( String file ) throws Exception { meta.setFilename( getFile( file ).getURL().getFile() ); step = new CubeInput( stepMeta, null, 1, transMeta, trans ); step.init( meta, data ); step.addRowListener( rowListener ); }