private List<Map<String,Object>> globFiles(final CWLJob job,final File workingDir,HashAlgorithm hashAlgorithm,final CWLOutputPort outputPort,Object outputBinding) throws CWLGlobException {
  if (outputPort.getOutputBinding() != null) {
    outputBinding=outputPort.getOutputBinding();
  }
  if (outputBinding == null) {
    logger.debug("Output binding is empty. Skip output extraction.");
    return null;
  }
  Object glob=CWLBindingHelper.getGlob(outputBinding);
  if (glob == null) {
    logger.debug("GLOB does not exist. Skip output extraction.");
    return null;
  }
  Set<File> files=globService.glob(job,workingDir,glob);
  if (files == null) {
    logger.info("Glob service didn't find any files.");
    return null;
  }
  logger.debug("Glob service returned result {}",files);
  final List<Map<String,Object>> result=new ArrayList<>();
  for (  File file : files) {
    try {
      result.add(formFileValue(file,job,outputBinding,outputPort,hashAlgorithm));
    }
 catch (    Exception e) {
      logger.error("Failed to extract outputs",e);
      throw new CWLGlobException("Failed to extract outputs.",e);
    }
  }
  return result;
}

private List < Map < String , Object > > globFiles ( final CWLJob job , final File workingDir , HashAlgorithm hashAlgorithm , final CWLOutputPort outputPort , Object outputBinding ) throws CWLGlobException { if ( outputPort . getOutputBinding ( ) != null ) { outputBinding = outputPort . getOutputBinding ( ) ; } if ( outputBinding == null ) { logger . debug ( "Output binding is empty. Skip output extraction." ) ; return null ; } Object glob = CWLBindingHelper . getGlob ( outputBinding ) ; if ( glob == null ) { logger . debug ( "GLOB does not exist. Skip output extraction." ) ; return null ; } Set < File > files = globService . glob ( job , workingDir , glob ) ; if ( files == null ) { logger . info ( "Glob service didn't find any files." ) ; return null ; } logger . debug ( "Glob service returned result {}" , files ) ; final List < Map < String , Object > > result = new ArrayList < > ( ) ; for ( File file : files ) { try { result . add ( formFileValue ( file , job , outputBinding , outputPort , hashAlgorithm ) ) ; } catch ( Exception e ) { logger . error ( "Failed to extract outputs" , e ) ; throw new CWLGlobException ( "Failed to extract outputs." , e ) ; } } return result ; }
extracts files from a directory based on glob expression
