public AnalyticQuery( StepMeta stepMeta, StepDataInterface stepDataInterface, int copyNr, TransMeta transMeta, Trans trans ) { super( stepMeta, stepDataInterface, copyNr, transMeta, trans ); meta = (AnalyticQueryMeta) getStepMeta().getStepMetaInterface(); data = (AnalyticQueryData) stepDataInterface; }
@Override public void identifyErrorOutput() { if ( stepMeta.isDoingErrorHandling() ) { StepErrorMeta stepErrorMeta = stepMeta.getStepErrorMeta(); outputRowSetsLock.writeLock().lock(); try { for ( int rowsetNr = 0; rowsetNr < outputRowSets.size(); rowsetNr++ ) { RowSet outputRowSet = outputRowSets.get( rowsetNr ); if ( outputRowSet.getDestinationStepName().equalsIgnoreCase( stepErrorMeta.getTargetStep().getName() ) ) { // This is the rowset to move! // errorRowSet = outputRowSet; outputRowSets.remove( rowsetNr ); return; } } } finally { outputRowSetsLock.writeLock().unlock(); } } }
public VariableSpace resolveCurrentDirectory( ObjectLocationSpecificationMethod specificationMethod, VariableSpace parentVariables, Repository repository, StepMeta stepMeta, String filename ) { RepositoryDirectoryInterface directory = null; if ( repository != null && specificationMethod.equals( ObjectLocationSpecificationMethod.REPOSITORY_BY_NAME ) && stepMeta != null && stepMeta.getParentTransMeta() != null && stepMeta.getParentTransMeta().getRepositoryDirectory() != null ) { directory = stepMeta.getParentTransMeta().getRepositoryDirectory(); } else if ( repository == null && stepMeta != null && stepMeta.getParentTransMeta() != null ) { filename = stepMeta.getParentTransMeta().getFilename(); } else if ( stepMeta != null && stepMeta.getParentTransMeta() != null && repository != null && specificationMethod.equals( ObjectLocationSpecificationMethod.FILENAME ) ) { // we're using FILENAME but we are connected to a repository directory = stepMeta.getParentTransMeta().getRepositoryDirectory(); } else if ( stepMeta != null && stepMeta.getParentTransMeta() != null && filename == null ) { filename = stepMeta.getParentTransMeta().getFilename(); } return resolveCurrentDirectory( parentVariables, directory, filename ); }
@Override public Object clone() { StepMeta stepMeta = new StepMeta(); stepMeta.replaceMeta( this ); stepMeta.setObjectId( null ); return stepMeta; }
@Test public void testCleanAfterHopToRemove_UnknownStep() { JoinRowsMeta joinRowsMeta = new JoinRowsMeta(); StepMeta stepMeta1 = new StepMeta( "Step1", mock( StepMetaInterface.class ) ); StepMeta stepMeta2 = new StepMeta( "Step2", mock( StepMetaInterface.class ) ); joinRowsMeta.setMainStep( stepMeta1 ); joinRowsMeta.setMainStepname( stepMeta1.getName() ); joinRowsMeta.cleanAfterHopToRemove( stepMeta2 ); // No change to the step should be made assertEquals( stepMeta1, joinRowsMeta.getMainStep() ); assertEquals( stepMeta1.getName(), joinRowsMeta.getMainStepname() ); }
@Test public void stepMetaXmlConsistency() throws Exception { StepMeta meta = new StepMeta( "id", "name", null ); StepMetaInterface smi = new MissingTrans( meta.getName(), meta.getStepID() ); meta.setStepMetaInterface( smi ); StepMeta fromXml = StepMeta.fromXml( meta.getXML() ); assertThat( meta.getXML(), is( fromXml.getXML() ) ); }
private static void disableLazyConversion( TransMeta transMeta ) { transMeta.getSteps().stream().filter( step -> "CsvInput".equals( step.getStepID() ) ) .forEach( step -> ( (CsvInputMeta) step.getStepMetaInterface() ).setLazyConversionActive( false ) ); transMeta.getSteps().stream().filter( step -> "TableInput".equals( step.getStepID() ) ) .forEach( step -> ( (TableInputMeta) step.getStepMetaInterface() ).setLazyConversionActive( false ) ); }
private static Map<String, BeanInjectionInfo> getUsedStepBeanInfos( TransMeta transMeta ) { Map<String, BeanInjectionInfo> res = new HashMap<>(); for ( StepMeta step : transMeta.getUsedSteps() ) { Class<? extends StepMetaInterface> stepMetaClass = step.getStepMetaInterface().getClass(); if ( BeanInjectionInfo.isInjectionSupported( stepMetaClass ) ) { res.put( step.getName().toUpperCase(), new BeanInjectionInfo( stepMetaClass ) ); } } return res; }
/** * * @param errorMsg * Message to send to rejected row if enabled * @return If should stop processing after having problems with a file */ public boolean failAfterBadFile( String errorMsg ) { if ( getStepMeta().isDoingErrorHandling() && data.filename != null && !data.rejectedFiles.containsKey( data.filename ) ) { data.rejectedFiles.put( data.filename, true ); rejectCurrentFile( errorMsg ); } return !meta.errorHandling.errorIgnored || !meta.errorHandling.skipBadFiles; }
@Override public void refresh( AbstractMeta meta, TreeNode treeNode, String filter ) { TransMeta transMeta = (TransMeta) meta; for ( int i = 0; i < transMeta.nrSteps(); i++ ) { StepMeta stepMeta = transMeta.getStep( i ); if ( stepMeta.isMissing() ) { continue; } PluginInterface stepPlugin = PluginRegistry.getInstance().findPluginWithId( StepPluginType.class, stepMeta.getStepID() ); if ( !filterMatch( stepMeta.getName(), filter ) ) { continue; } Image stepIcon = GUIResource.getInstance().getImagesStepsSmall().get( stepPlugin.getIds()[ 0 ] ); if ( stepIcon == null ) { stepIcon = GUIResource.getInstance().getImageFolder(); } TreeNode childTreeNode = createTreeNode( treeNode, stepMeta.getName(), stepIcon ); childTreeNode.setData( "StepId", stepMeta.getStepID() ); if ( stepMeta.isShared() ) { childTreeNode.setFont( GUIResource.getInstance().getFontBold() ); } if ( !stepMeta.isDrawn() ) { childTreeNode.setForeground( GUIResource.getInstance().getColorDarkGray() ); } } }
public static StepMeta fromXml( String metaXml ) { Document doc; try { doc = XMLHandler.loadXMLString( metaXml ); Node stepNode = XMLHandler.getSubNode( doc, "step" ); return new StepMeta( stepNode, Collections.emptyList(), (IMetaStore) null ); } catch ( KettleXMLException | KettlePluginLoaderException e ) { throw new RuntimeException( e ); } }
/** * @param steps * optionally search the info step in a list of steps */ @Override public void searchInfoAndTargetSteps( List<StepMeta> steps ) { acceptingStep = StepMeta.findStep( steps, inputFiles.acceptingStepName ); }
public boolean isSendingErrorRowsToStep( StepMeta targetStep ) { return ( isDoingErrorHandling() && stepErrorMeta.getTargetStep().equals( targetStep ) ); }
static StepMeta getReadStepMeta( String name ) { DummyTransMeta twoMeta = new DummyTransMeta(); StepMeta two = new StepMeta( registry.getPluginId( StepPluginType.class, twoMeta ), name, twoMeta ); two.setLocation( 250, 50 ); two.setDraw( true ); return two; }
private static Consumer<StepMeta> createOperation( org.pentaho.di.engine.model.Transformation transformation ) { return stepMeta -> { org.pentaho.di.engine.model.Operation operation = transformation.createOperation( stepMeta.getName() ); try { operation.setConfig( STEP_META_CONF_KEY, stepMeta.getXML() ); } catch ( KettleException e ) { Throwables.propagate( e ); } }; }
/** * many steps copies to one */ private void prepareStepMetas_x2_1() { StepMeta dummy1 = new StepMeta( ONE, null ); StepMeta dummy2 = new StepMeta( TWO, null ); dummy1.setCopies( 2 ); chain.add( dummy1 ); chain.add( dummy2 ); for ( StepMeta item : chain ) { item.setStepMetaInterface( new DummyTransMeta() ); } }
/** * Support for CheckResultSourceInterface */ @Override public String getTypeId() { return this.getStepID(); }