public void setFilter() { if ( condition == null ) { condition = new Condition(); } RowMetaInterface f = getRowWithoutValues(); EnterConditionDialog ecd = new EnterConditionDialog( parent.getShell(), SWT.NONE, f, condition ); Condition cond = ecd.open(); if ( cond != null ) { ArrayList<Integer> tokeep = new ArrayList<Integer>(); // Apply the condition to the TableView... int nr = table.getItemCount(); for ( int i = nr - 1; i >= 0; i-- ) { RowMetaAndData r = getRow( i ); boolean keep = cond.evaluate( r.getRowMeta(), r.getData() ); if ( keep ) { tokeep.add( Integer.valueOf( i ) ); } } int[] sels = new int[tokeep.size()]; for ( int i = 0; i < sels.length; i++ ) { sels[i] = ( tokeep.get( i ) ).intValue(); } table.setSelection( sels ); } }
private synchronized boolean keepRow( RowMetaInterface rowMeta, Object[] row ) throws KettleException { try { return meta.getCondition().evaluate( rowMeta, row ); } catch ( Exception e ) { String message = BaseMessages.getString( PKG, "FilterRows.Exception.UnexpectedErrorFoundInEvaluationFuction" ); logError( message ); logError( BaseMessages.getString( PKG, "FilterRows.Log.ErrorOccurredForRow" ) + rowMeta.getString( row ) ); logError( Const.getStackTracker( e ) ); throw new KettleException( message, e ); } }
retval = cb0.evaluate( rowMeta, r ); retval = retval || cb.evaluate( rowMeta, r ); break; case Condition.OPERATOR_AND: retval = retval && cb.evaluate( rowMeta, r ); break; case Condition.OPERATOR_OR_NOT: retval = retval || ( !cb.evaluate( rowMeta, r ) ); break; case Condition.OPERATOR_AND_NOT: retval = retval && ( !cb.evaluate( rowMeta, r ) ); break; case Condition.OPERATOR_XOR: retval = retval ^ cb.evaluate( rowMeta, r ); break; default:
if ( stepDebugMeta.getCondition().evaluate( rowMeta, row ) ) {
if ( meta.getCondition().evaluate( data.outputRowMeta, sum ) ) { putRow( data.outputRowMeta, sum );