class MetaInjectMeta extends BaseTransformMeta implements ITransformMeta<MetaInject, MetaInjectData>, ITransformMetaChangeListener, ISubPipelineAwareMeta {

  @Override
  public List<ResourceReference> getResourceDependencies(PipelineMeta pipelineMeta, TransformMeta transformInfo ) {
    List<ResourceReference> references = new ArrayList<ResourceReference>( 5 );
    String realFilename = pipelineMeta.environmentSubstitute( fileName );
    String realPipelineName = pipelineMeta.environmentSubstitute(pipelineName);
    String realDirectoryPath = pipelineMeta.environmentSubstitute( directoryPath );
    ResourceReference reference = new ResourceReference( transformInfo );
    references.add( reference );

    if ( !Utils.isEmpty( realFilename ) ) {
      // Add the filename to the references, including a reference to this transform
      // meta data.
      //
      reference.getEntries().add( new ResourceEntry( realFilename, ResourceEntry.ResourceType.ACTIONFILE ) );
    } else if ( !Utils.isEmpty( realPipelineName ) ) {
      // Add the trans name (including full repository path) to dependencies
      String realTransformation = realDirectoryPath + "/" + realPipelineName;
      reference.getEntries().add( new ResourceEntry( realTransformation, ResourceEntry.ResourceType.ACTIONFILE ) );
    }
    return references;
  }

  public  MetaInjectMeta();

}