class MetaInject extends BaseStep implements StepInterface {

  public static Set<SourceStepField> getUnavailableSourceSteps( Map<TargetStepAttribute, SourceStepField> targetMap,
                                                                TransMeta sourceTransMeta, StepMeta stepMeta ) {
    String[] stepNamesArray = sourceTransMeta.getPrevStepNames( stepMeta );
    Set<String> existedStepNames = convertToUpperCaseSet( stepNamesArray );
    Set<SourceStepField> unavailableSourceSteps = new HashSet<SourceStepField>();
    for ( SourceStepField currentSource : targetMap.values() ) {
      if ( currentSource.getStepname() != null ) {
        if ( !existedStepNames.contains( currentSource.getStepname().toUpperCase() ) ) {
          unavailableSourceSteps.add( currentSource );
        }
      }
    }
    return Collections.unmodifiableSet( unavailableSourceSteps );
  }

  public  MetaInject(
    StepMeta stepMeta, StepDataInterface stepDataInterface, int copyNr, TransMeta transMeta, Trans trans );

}