/** * Puts a row on to the underlying row set, optionally blocking until the row can be successfully put. * * @return true if the row was successfully added to the rowset and false if this buffer was full. If {@code block} is * true this will always return true. * @see RowSet#putRow(RowMetaInterface, Object[]) */ public boolean putRow( RowMetaInterface rowMeta, Object[] row, boolean block ) { if ( block ) { boolean added = false; while ( !added ) { added = rowSet.putRowWait( rowMeta, row, Long.MAX_VALUE, TimeUnit.DAYS ); } return true; } return rowSet.putRow( rowMeta, row ); }
private RowSet getEmptyResponse() { RowSet nullInputResponse = new SingleRowRowSet(); nullInputResponse.putRow( null, new Object[ fields.length ] ); nullInputResponse.setDone(); return nullInputResponse; }
private void putRowToRowSet( RowSet rs, RowMetaInterface rowMeta, Object[] row ) { RowMetaInterface toBeSent; RowMetaInterface metaFromRs = rs.getRowMeta(); if ( metaFromRs == null ) { // RowSet is not initialised so far toBeSent = rowMeta.clone(); } else { // use the existing toBeSent = metaFromRs; } while ( !rs.putRow( toBeSent, row ) ) { if ( isStopped() && !safeStopped.get() ) { return; } } }
@Test public void testPutRow3Arg() throws Exception { when( rowSet.putRowWait( any( RowMetaInterface.class ), any( Object[].class ), anyLong(), any( TimeUnit.class ) ) ) .thenReturn( true ); rowProducer.putRow( rowMeta, rowData, false ); verify( rowSet, times( 1 ) ).putRow( rowMeta, rowData ); }
private DatabaseLookup spyLookup( StepMockHelper<DatabaseLookupMeta, DatabaseLookupData> mocks, Database db, DatabaseMeta dbMeta ) { DatabaseLookup lookup = new DatabaseLookup( mocks.stepMeta, mocks.stepDataInterface, 1, mocks.transMeta, mocks.trans ); lookup = Mockito.spy( lookup ); doReturn( db ).when( lookup ).getDatabase( eq( dbMeta ) ); for ( RowSet rowSet : lookup.getOutputRowSets() ) { if ( mockingDetails( rowSet ).isMock() ) { when( rowSet.putRow( any( RowMetaInterface.class ), any( Object[].class ) ) ).thenReturn( true ); } } return lookup; }
while ( !rowSet.putRow( rowMeta, row ) ) { if ( isStopped() ) { break;
@Test public void testDummyTransWritesOutputWithInputRow() throws KettleException { DummyTrans dummy = new DummyTrans( stepMockHelper.stepMeta, stepMockHelper.stepDataInterface, 0, stepMockHelper.transMeta, stepMockHelper.trans ); dummy.init( stepMockHelper.initStepMetaInterface, stepMockHelper.initStepDataInterface ); Object[] row = new Object[] { "abcd" }; RowSet rowSet = stepMockHelper.getMockInputRowSet( row ); RowMetaInterface inputRowMeta = mock( RowMetaInterface.class ); when( inputRowMeta.clone() ).thenReturn( inputRowMeta ); when( rowSet.getRowMeta() ).thenReturn( inputRowMeta ); dummy.addRowSetToInputRowSets( rowSet ); RowSet outputRowSet = mock( RowSet.class ); dummy.addRowSetToOutputRowSets( outputRowSet ); when( outputRowSet.putRow( inputRowMeta, row ) ).thenReturn( true ); dummy.processRow( stepMockHelper.processRowsStepMetaInterface, stepMockHelper.processRowsStepDataInterface ); verify( outputRowSet, times( 1 ) ).putRow( inputRowMeta, row ); } }
@Test public void testDummyTransDoesntWriteOutputWithoutInputRow() throws KettleException { DummyTrans dummy = new DummyTrans( stepMockHelper.stepMeta, stepMockHelper.stepDataInterface, 0, stepMockHelper.transMeta, stepMockHelper.trans ); dummy.init( stepMockHelper.initStepMetaInterface, stepMockHelper.initStepDataInterface ); RowSet rowSet = stepMockHelper.getMockInputRowSet(); RowMetaInterface inputRowMeta = mock( RowMetaInterface.class ); when( rowSet.getRowMeta() ).thenReturn( inputRowMeta ); dummy.addRowSetToInputRowSets( rowSet ); RowSet outputRowSet = mock( RowSet.class ); dummy.addRowSetToOutputRowSets( outputRowSet ); dummy.processRow( stepMockHelper.processRowsStepMetaInterface, stepMockHelper.processRowsStepDataInterface ); verify( inputRowMeta, never() ).cloneRow( any( Object[].class ) ); verify( outputRowSet, never() ).putRow( any( RowMetaInterface.class ), any( Object[].class ) ); }
while ( !errorRowSet.putRow( errorRowMeta, errorRowData ) ) { if ( isStopped() ) { break;
public void write(IRubyObject rubyOut) throws KettleException { Object[] r = new Object[rowSize]; rowList.clear(); model.fetchRowsFromScriptOutput(rubyOut, inRow, r, rowList, data.outputRowMeta.getValueMetaList(), data.outputRowMeta); for (Object[] outRow : rowList) { rs.putRow(data.outputRowMeta, outRow); step.incrementLinesWritten(); } }