public void loadRow( Object[] r ) throws Exception { // Store rows for processing Map<String, Object> columns = new Hashtable<String, Object>(); for ( String field : inputRowMeta.getFieldNames() ) { columns.put( field, r[inputRowMeta.indexOfValue( field )] ); } rowList.add( new Row( columns, true ) ); }
private Optional<String> getField( Object[] row, String field ) { int messageFieldIndex = getInputRowMeta().indexOfValue( field ); checkArgument( messageFieldIndex > -1, getString( PKG, "MQTTProducer.Error.FieldNotFound", field ) ); return ofNullable( row[ messageFieldIndex ] ).map( Object::toString ); }
public FieldHelper( RowMetaInterface rowMeta, String fieldName ) { this.meta = rowMeta.searchValueMeta( fieldName ); this.index = rowMeta.indexOfValue( fieldName ); if ( this.index == -1 ) { throw new IllegalArgumentException( String.format( "FieldHelper could not be initialized. The field named '%s' not found in RowMeta: %s", fieldName, rowMeta.toStringMeta() ) ); } }
public double getNumber( String valueName, double def ) throws KettleValueException { int idx = rowMeta.indexOfValue( valueName ); if ( idx < 0 ) { throw new KettleValueException( "Unknown column '" + valueName + "'" ); } return getNumber( idx, def ); }
public String getString( String valueName, String def ) throws KettleValueException { int idx = rowMeta.indexOfValue( valueName ); if ( idx < 0 ) { throw new KettleValueException( "Unknown column '" + valueName + "'" ); } return getString( idx, def ); }
public void removeValue( String valueName ) throws KettleValueException { int index = rowMeta.indexOfValue( valueName ); if ( index < 0 ) { throw new KettleValueException( "Unable to find '" + valueName + "' in the row" ); } removeValue( index ); }
public void getFields( RowMetaInterface inputRowMeta, String name, RowMetaInterface[] info, StepMeta nextStep, VariableSpace space, Repository repository, IMetaStore metaStore ) throws KettleStepException { // Set the sorted properties: ascending/descending for ( int i = 0; i < fieldName.length; i++ ) { int idx = inputRowMeta.indexOfValue( fieldName[i] ); if ( idx >= 0 ) { ValueMetaInterface valueMeta = inputRowMeta.getValueMeta( idx ); valueMeta.setSortedDescending( !ascending[i] ); // TODO: add case insensivity } } }
public long getInteger( String valueName, long def ) throws KettleValueException { int idx = rowMeta.indexOfValue( valueName ); if ( idx < 0 ) { throw new KettleValueException( "Unknown column '" + valueName + "'" ); } return getInteger( idx, def ); }
public Date getDate( String valueName, Date def ) throws KettleValueException { int idx = rowMeta.indexOfValue( valueName ); if ( idx < 0 ) { throw new KettleValueException( "Unknown column '" + valueName + "'" ); } return getDate( idx, def ); }
public Long getInteger( String valueName ) throws KettleValueException { int idx = rowMeta.indexOfValue( valueName ); if ( idx < 0 ) { throw new KettleValueException( "Unknown column '" + valueName + "'" ); } return rowMeta.getInteger( data, idx ); }
private void initFieldNumbers( RowMetaInterface outputRowMeta, TextFileField[] outputFields ) throws KettleException { data.fieldnrs = new int[outputFields.length]; for ( int i = 0; i < outputFields.length; i++ ) { data.fieldnrs[i] = outputRowMeta.indexOfValue( outputFields[i].getName() ); if ( data.fieldnrs[i] < 0 ) { throw new KettleStepException( "Field [" + outputFields[i].getName() + "] couldn't be found in the input stream!" ); } } }
/** * package-local visibility for testing purposes */ void setEntryValueIfFieldExists( StepInjectionMetaEntry entry, RowMetaAndData row, SourceStepField source ) throws KettleValueException { RowMetaInterface rowMeta = row.getRowMeta(); if ( rowMeta.indexOfValue( source.getField() ) < 0 ) { return; } setEntryValue( entry, row, source ); }
private SyslogMessageTask createSyslogMessageTask() throws Exception { SyslogMessageData data = new SyslogMessageData(); RowMetaInterface inputRowMeta = mock( RowMetaInterface.class ); when( inputRowMeta.indexOfValue( any() ) ).thenReturn( 0 ); when( inputRowMeta.getString( any(), eq( 0 ) ) ).thenReturn( testMessage ); SyslogMessageTask syslogMessage = new SyslogMessageTask( stepMockHelper.stepMeta, data, 0, stepMockHelper.transMeta, stepMockHelper.trans, stepMockHelper.processRowsStepMetaInterface ); syslogMessage.init( stepMockHelper.processRowsStepMetaInterface, data ); syslogMessage.setInputRowMeta( inputRowMeta ); return syslogMessage; } }
@Test public void getTimestamp_Test() throws Exception { ValueMetaTimestamp v = new ValueMetaTimestamp( "TS" ); RowMetaInterface row = mock( RowMetaInterface.class ); doReturn( v ).when( row ).searchValueMeta( anyString() ); doReturn( 0 ).when( row ).indexOfValue( anyString() ); assertEquals( Timestamp.valueOf( "2018-07-23 12:40:55" ), new FieldHelper( row, "TS" ).getTimestamp( new Object[] { Timestamp.valueOf( "2018-07-23 12:40:55" ) } ) ); }
@Test public void setValue_InetAddress() throws Exception { ValueMetaInternetAddress v = new ValueMetaInternetAddress( "IP" ); RowMetaInterface row = mock( RowMetaInterface.class ); doReturn( v ).when( row ).searchValueMeta( anyString() ); doReturn( 0 ).when( row ).indexOfValue( anyString() ); Object[] data = new Object[1]; new FieldHelper( row, "IP" ).setValue( data, InetAddress.getLoopbackAddress() ); assertEquals( InetAddress.getLoopbackAddress(), data[0] ); }
@Test public void getInetAddress_Test() throws Exception { ValueMetaInternetAddress v = new ValueMetaInternetAddress( "IP" ); RowMetaInterface row = mock( RowMetaInterface.class ); doReturn( v ).when( row ).searchValueMeta( anyString() ); doReturn( 0 ).when( row ).indexOfValue( anyString() ); assertEquals( InetAddress.getLoopbackAddress(), new FieldHelper( row, "IP" ).getInetAddress( new Object[] { InetAddress.getLoopbackAddress() } ) ); }
@Test public void getBinary_Test() throws Exception { ValueMetaBinary v = new ValueMetaBinary( "Data" ); RowMetaInterface row = mock( RowMetaInterface.class ); doReturn( v ).when( row ).searchValueMeta( anyString() ); doReturn( 0 ).when( row ).indexOfValue( anyString() ); assertArrayEquals( new byte[] { 0, 1, 2 }, new FieldHelper( row, "Data" ).getBinary( new Object[] { new byte[] { 0, 1, 2 } } ) ); }
@Test public void setValue_ValueMetaBinary() throws Exception { ValueMetaBinary v = new ValueMetaBinary( "Data" ); RowMetaInterface row = mock( RowMetaInterface.class ); doReturn( v ).when( row ).searchValueMeta( anyString() ); doReturn( 0 ).when( row ).indexOfValue( anyString() ); Object[] data = new Object[1]; new FieldHelper( row, "Data" ).setValue( data, new byte[] { 0, 1, 2 } ); assertArrayEquals( new byte[] { 0, 1, 2 }, (byte[]) data[0] ); } }
@Test public void getSerializable_Test() throws Exception { ValueMetaSerializable v = new ValueMetaSerializable( "Data" ); RowMetaInterface row = mock( RowMetaInterface.class ); doReturn( v ).when( row ).searchValueMeta( anyString() ); doReturn( 0 ).when( row ).indexOfValue( anyString() ); assertEquals( "...", new FieldHelper( row, "Data" ).getSerializable( new Object[] { "..." } ) ); }
@Test public void setValue_String() { ValueMetaString v = new ValueMetaString( "Name" ); RowMetaInterface row = mock( RowMetaInterface.class ); doReturn( v ).when( row ).searchValueMeta( anyString() ); doReturn( 0 ).when( row ).indexOfValue( anyString() ); Object[] data = new Object[1]; new FieldHelper( row, "Name" ).setValue( data, "Hitachi Vantara" ); assertEquals( "Hitachi Vantara", data[0] ); }