0

我有两个目标流(匹配和不匹配)定义如下:

@Override
public StepIOMetaInterface getStepIOMeta() {

    StepMeta stepMeta = new StepMeta();


    if (ioMeta == null) {
        ioMeta = new StepIOMeta(true, false, false, false, false, true);

        StreamInterface matchStream = new Stream(StreamType.TARGET, null, "Matches", StreamIcon.TARGET, null);
        StreamInterface mismatchStream = new Stream(StreamType.TARGET, null, "Mismatches", StreamIcon.TARGET, null);

        ioMeta.addStream(matchStream);
        ioMeta.addStream(mismatchStream);

    }

    return ioMeta;
}

我想向这两个目标发送不同的元数据。从前面的步骤接收元数据。对于匹配,它需要是两个输入流的串联,对于不匹配,它只需要第一个输入流。

我被困在如何分别为两个目标流定义元数据。

感谢你的帮助。

4

1 回答 1

0
 List<StreamInterface> targets=getStepIOMeta().getTargetStreams();    
      List<StreamInterface> infos=getStepIOMeta().getInfoStreams();   
       if ( info != null ) 
     {
           if(targets!=null)
            {

if(nextStep.getName().equals(targets.get(0).getStepname()))  
                    {
                        if ( info != null ) {  
                              for ( int i = 0; i < info.length; i++ ) {  
                                if ( info[i] != null ) {  
                                  r.mergeRowMeta( info[i] );  
                                }
                              }
                            }
                    }
                    if(nextStep.getName().equals(targets.get(1).getStepname()))
                    {
                        if ( info != null ) {  
                              if ( info.length > 0 && info[0] != null ) {   
                                r.mergeRowMeta( info[0] );  
                              }   
                            }  
                    }
                    if(nextStep.getName().equals(targets.get(2).getStepname()))
                    {
                        if ( info != null ) {
                              if ( info.length > 0 && info[0] != null ) {
                                r.mergeRowMeta( info[1] );
                              }
                            }  
                    }

            }
于 2015-07-24T09:57:52.420 回答