class MetaInject extends BaseStep implements StepInterface {

  public static Set<TargetStepAttribute> getUnavailableTargetKeys( Map<TargetStepAttribute, SourceStepField> targetMap,
                                                                   TransMeta injectedTransMeta, Set<TargetStepAttribute> unavailableTargetSteps ) {
    Set<TargetStepAttribute> missingKeys = new HashSet<>();
    Map<String, BeanInjectionInfo> beanInfos = getUsedStepBeanInfos( injectedTransMeta );
    for ( TargetStepAttribute key : targetMap.keySet() ) {
      if ( !unavailableTargetSteps.contains( key ) ) {
        BeanInjectionInfo info = beanInfos.get( key.getStepname().toUpperCase() );
        if ( info != null && !info.getProperties().containsKey( key.getAttributeKey() ) ) {
          missingKeys.add( key );
        }
      }
    }
    return missingKeys;
  }

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

}