public void newHop( TransMeta transMeta, StepMeta fr, StepMeta to ) { TransHopMeta hi = new TransHopMeta( fr, to ); TransHopDialog hd = new TransHopDialog( shell, SWT.NONE, hi, transMeta ); if ( hd.open() != null ) { newHop( transMeta, hi ); } }
private void wireUpTestTransMeta( TransMeta transMeta, StepMeta toBeAppended1, StepMeta toBeAppended2, StepMeta append, StepMeta after ) { transMeta.addStep( append ); transMeta.addStep( after ); transMeta.addStep( toBeAppended1 ); transMeta.addStep( toBeAppended2 ); transMeta.addTransHop( new TransHopMeta( toBeAppended1, append ) ); transMeta.addTransHop( new TransHopMeta( toBeAppended2, append ) ); transMeta.addTransHop( new TransHopMeta( append, after ) ); }
@Test public void errorHops() throws Exception { TransMeta meta = new TransMeta(); meta.setFilename( "fileName" ); StepMeta from = new StepMeta( "step1", stepMetaInterface ); meta.addStep( from ); StepMeta to = new StepMeta( "step2", stepMetaInterface ); meta.addStep( to ); meta.addTransHop( new TransHopMeta( from, to ) ); StepMeta error = new StepMeta( "errorHandler", stepMetaInterface ); meta.addStep( error ); TransHopMeta errorHop = new TransHopMeta( from, error ); errorHop.setErrorHop( true ); meta.addTransHop( errorHop ); Transformation trans = TransMetaConverter.convert( meta ); Map<String, List<Hop>> hops = trans.getHops().stream().collect( Collectors.groupingBy( Hop::getType ) ); List<Hop> normalHops = hops.get( Hop.TYPE_NORMAL ); assertThat( normalHops.size(), is( 1 ) ); assertThat( normalHops.get( 0 ).getTo().getId(), is( "step2" ) ); List<Hop> errorHops = hops.get( Hop.TYPE_ERROR ); assertThat( errorHops.size(), is( 1 ) ); assertThat( errorHops.get( 0 ).getTo().getId(), is( "errorHandler" ) ); assertThat( hops.values().stream() .flatMap( List::stream ) .map( Hop::getFrom ).map( Operation::getId ) .collect( Collectors.toList() ), everyItem( equalTo( "step1" ) ) ); }
@Test public void testRemovingDisabledInputSteps() { TransMeta trans = new TransMeta(); StepMeta inputToBeRemoved = new StepMeta( "InputToBeRemoved", stepMetaInterface ); trans.addStep( inputToBeRemoved ); StepMeta inputToStay = new StepMeta( "InputToStay", stepMetaInterface ); trans.addStep( inputToStay ); StepMeta inputReceiver1 = new StepMeta( "InputReceiver1", stepMetaInterface ); trans.addStep( inputReceiver1 ); StepMeta inputReceiver2 = new StepMeta( "InputReceiver2", stepMetaInterface ); trans.addStep( inputReceiver2 ); TransHopMeta hop1 = new TransHopMeta( inputToBeRemoved, inputReceiver1, false ); TransHopMeta hop2 = new TransHopMeta( inputToStay, inputReceiver1 ); TransHopMeta hop3 = new TransHopMeta( inputToBeRemoved, inputReceiver2, false ); trans.addTransHop( hop1 ); trans.addTransHop( hop2 ); trans.addTransHop( hop3 ); Transformation transformation = TransMetaConverter.convert( trans ); List<String> steps = transformation.getOperations().stream().map( op -> op.getId() ).collect( Collectors.toList() ); assertThat( "Only 2 ops should exist", steps.size(), is( 2 ) ); assertThat( steps, hasItems( "InputToStay", "InputReceiver1" ) ); List<String> hops = transformation.getHops().stream().map( hop -> hop.getId() ).collect( Collectors.toList() ); assertThat( "Only 1 hop should exist", hops.size(), is( 1 ) ); assertThat( hops, hasItems( "InputToStay -> InputReceiver1" ) ); }
@Test public void transWithHops() { TransMeta meta = new TransMeta(); meta.setFilename( "fileName" ); StepMeta from = new StepMeta( "step1", stepMetaInterface ); meta.addStep( from ); StepMeta to = new StepMeta( "step2", stepMetaInterface ); meta.addStep( to ); meta.addTransHop( new TransHopMeta( from, to ) ); Transformation trans = TransMetaConverter.convert( meta ); assertThat( trans.getId(), is( meta.getFilename() ) ); assertThat( trans.getOperations().size(), is( 2 ) ); assertThat( trans.getHops().size(), is( 1 ) ); assertThat( trans.getHops().get( 0 ).getFrom().getId(), is( from.getName() ) ); assertThat( trans.getHops().get( 0 ).getTo().getId(), is( to.getName() ) ); assertThat( trans.getHops().stream().map( Hop::getType ).collect( Collectors.toList() ), everyItem( is( Hop.TYPE_NORMAL ) ) ); }
trans.addStep( afterEnabledDisabled ); trans.addTransHop( new TransHopMeta( start, withEnabledHop ) ); trans.addTransHop( new TransHopMeta( start, withDisabledHop, false ) ); trans.addTransHop( new TransHopMeta( withEnabledHop, shouldStay ) ); trans.addTransHop( new TransHopMeta( withDisabledHop, shouldStay ) ); trans.addTransHop( new TransHopMeta( withDisabledHop, shouldNotStay ) ); trans.addTransHop( new TransHopMeta( start, withEnabledAndDisabledHops ) ); trans.addTransHop( new TransHopMeta( withEnabledHop, withEnabledAndDisabledHops, false ) ); trans.addTransHop( new TransHopMeta( withEnabledAndDisabledHops, afterEnabledDisabled ) );
@Test public void testMultipleDisabledHops() { TransMeta trans = new TransMeta(); StepMeta input = new StepMeta( "Input", stepMetaInterface ); trans.addStep( input ); StepMeta step1 = new StepMeta( "Step1", stepMetaInterface ); trans.addStep( step1 ); StepMeta step2 = new StepMeta( "Step2", stepMetaInterface ); trans.addStep( step2 ); StepMeta step3 = new StepMeta( "Step3", stepMetaInterface ); trans.addStep( step3 ); TransHopMeta hop1 = new TransHopMeta( input, step1, false ); TransHopMeta hop2 = new TransHopMeta( step1, step2, false ); TransHopMeta hop3 = new TransHopMeta( step2, step3, false ); trans.addTransHop( hop1 ); trans.addTransHop( hop2 ); trans.addTransHop( hop3 ); Transformation transformation = TransMetaConverter.convert( trans ); assertThat( "Trans has steps though all of them should be removed", transformation.getOperations().size(), is( 0 ) ); assertThat( "Trans has hops though all of them should be removed", transformation.getHops().size(), is( 0 ) ); }
@Test public void testGetAllTransHops() throws Exception { TransMeta transMeta = new TransMeta( "transFile", "myTrans" ); StepMeta step1 = new StepMeta( "name1", null ); StepMeta step2 = new StepMeta( "name2", null ); StepMeta step3 = new StepMeta( "name3", null ); StepMeta step4 = new StepMeta( "name4", null ); TransHopMeta hopMeta1 = new TransHopMeta( step1, step2, true ); TransHopMeta hopMeta2 = new TransHopMeta( step2, step3, true ); TransHopMeta hopMeta3 = new TransHopMeta( step2, step4, true ); transMeta.addTransHop( 0, hopMeta1 ); transMeta.addTransHop( 1, hopMeta2 ); transMeta.addTransHop( 2, hopMeta3 ); List<TransHopMeta> allTransHopFrom = transMeta.findAllTransHopFrom( step2 ); assertEquals( step3, allTransHopFrom.get( 0 ).getToStep() ); assertEquals( step4, allTransHopFrom.get( 1 ).getToStep() ); }
@Test public void testResolveStepMetaResources() throws KettleException, MetaStoreException { Variables variables = new Variables(); TransMeta transMeta = spy( new TransMeta() ); transMeta.setParentVariableSpace( variables ); doReturn( transMeta ).when( transMeta ).realClone( false ); TestMetaResolvableResource testMetaResolvableResource = spy( new TestMetaResolvableResource() ); TestMetaResolvableResource testMetaResolvableResourceTwo = spy( new TestMetaResolvableResource() ); StepMeta testMeta = new StepMeta( "TestMeta", testMetaResolvableResource ); StepMeta testMetaTwo = new StepMeta( "TestMeta2", testMetaResolvableResourceTwo ); transMeta.addStep( testMeta ); transMeta.addStep( testMetaTwo ); transMeta.addTransHop( new TransHopMeta( testMeta, testMetaTwo ) ); TransMetaConverter.convert( transMeta ); verify( testMetaResolvableResource ).resolve(); verify( testMetaResolvableResourceTwo ).resolve(); } private static class TestMetaResolvableResource extends BaseStepMeta
public static final TransMeta generatePreviewTransformation( VariableSpace parent, StepMetaInterface oneMeta, String oneStepname ) { PluginRegistry registry = PluginRegistry.getInstance(); TransMeta previewMeta = new TransMeta( parent ); // The following operation resets the internal variables! // previewMeta.setName( parent == null ? "Preview transformation" : parent.toString() ); // At it to the first step. StepMeta one = new StepMeta( registry.getPluginId( StepPluginType.class, oneMeta ), oneStepname, oneMeta ); one.setLocation( 50, 50 ); one.setDraw( true ); previewMeta.addStep( one ); DummyTransMeta twoMeta = new DummyTransMeta(); StepMeta two = new StepMeta( registry.getPluginId( StepPluginType.class, twoMeta ), "dummy", twoMeta ); two.setLocation( 250, 50 ); two.setDraw( true ); previewMeta.addStep( two ); TransHopMeta hop = new TransHopMeta( one, two ); previewMeta.addTransHop( hop ); return previewMeta; } }
@Test public void testIsAnySelectedStepUsedInTransHopsAnySelectedCase() { StepMeta stepMeta = new StepMeta(); stepMeta.setName( STEP_NAME ); TransHopMeta transHopMeta = new TransHopMeta(); stepMeta.setSelected( true ); List<StepMeta> selectedSteps = asList( new StepMeta(), stepMeta, new StepMeta() ); transHopMeta.setToStep( stepMeta ); transHopMeta.setFromStep( stepMeta ); transMeta.getSteps().addAll( selectedSteps ); transMeta.addTransHop( transHopMeta ); assertTrue( transMeta.isAnySelectedStepUsedInTransHops() ); }
public static TransMeta generateTestTransformation( VariableSpace parent, StepMetaInterface oneMeta, String oneStepname, RowMetaInterface injectorRowMeta ) { TransMeta previewMeta = new TransMeta( parent ); // First the injector step... StepMeta zero = getInjectorStepMeta( injectorRowMeta ); previewMeta.addStep( zero ); // Then the middle step to test... // StepMeta one = new StepMeta( registry.getPluginId( StepPluginType.class, oneMeta ), oneStepname, oneMeta ); one.setLocation( 150, 50 ); one.setDraw( true ); previewMeta.addStep( one ); // Then we add the dummy step to read the results from StepMeta two = getReadStepMeta(); previewMeta.addStep( two ); // Add the hops between the 3 steps. TransHopMeta zeroOne = new TransHopMeta( zero, one ); previewMeta.addTransHop( zeroOne ); TransHopMeta oneTwo = new TransHopMeta( one, two ); previewMeta.addTransHop( oneTwo ); return previewMeta; }
TransHopMeta hop = new TransHopMeta( lastChained, newStep ); spoon.newHop( transMeta, hop );
public TransHopMeta loadTransHopMeta( ObjectId id_trans_hop, List<StepMeta> steps ) throws KettleException { TransHopMeta hopTransMeta = new TransHopMeta(); try { hopTransMeta.setObjectId( id_trans_hop );
StepMeta step3 = new StepMeta( "name3", null ); StepMeta step4 = new StepMeta( "name4", null ); TransHopMeta hopMeta1 = new TransHopMeta( step1, step2, true ); TransHopMeta hopMeta2 = new TransHopMeta( step2, step3, true ); TransHopMeta hopMeta3 = new TransHopMeta( step3, step4, false ); transMeta.addTransHop( 0, hopMeta1 ); transMeta.addTransHop( 1, hopMeta2 );
TransHopMeta hop1 = new TransHopMeta( dg1, udjc, true ); TransHopMeta hop2 = new TransHopMeta( dg2, udjc, true ); transMeta.addStep( dg1 ); transMeta.addStep( dg2 );
TransHopMeta zeroOne = new TransHopMeta( zero, one ); previewMeta.addTransHop( zeroOne ); TransHopMeta oneTwo = new TransHopMeta( one, two ); previewMeta.addTransHop( oneTwo ); TransHopMeta oneErr = new TransHopMeta( one, err ); previewMeta.addTransHop( oneErr );
TransHopMeta newhop1 = new TransHopMeta( hi.getFromStep(), selectedStep ); if ( transMeta.findTransHop( newhop1 ) == null ) { transMeta.addTransHop( newhop1 ); new int[] { transMeta.indexOfTransHop( newhop1 ), }, true ); TransHopMeta newhop2 = new TransHopMeta( selectedStep, hi.getToStep() ); if ( transMeta.findTransHop( newhop2 ) == null ) { transMeta.addTransHop( newhop2 );
StepMeta textFileOutputStep = new StepMeta( "BACKLOG-21039", textFileOutputMeta ); TransHopMeta hop = new TransHopMeta( dg, textFileOutputStep, true ); TransHopMeta hop2 = new TransHopMeta( dg2, textFileOutputStep, true ); transMeta.addStep( dg ); transMeta.addStep( dg2 );
meta.addStep( selstep ); TransHopMeta shi = new TransHopMeta( fromstep, selstep ); meta.addTransHop( shi ); fromstep = selstep; TransHopMeta hi = new TransHopMeta( fromstep, tostep ); meta.addTransHop( hi );