void expand(File dir,String[] files,boolean isUpdate){
  if (files == null) {
    return;
  }
  for (int i=0; i < files.length; i++) {
    File f;
    if (dir == null) {
      f=new File(files[i]);
    }
 else {
      f=new File(dir,files[i]);
    }
    if (f.isFile()) {
      if (entries.add(f)) {
        if (isUpdate)         entryMap.put(entryName(f.getPath()),f);
      }
    }
 else     if (f.isDirectory()) {
      if (entries.add(f)) {
        if (isUpdate) {
          String dirPath=f.getPath();
          dirPath=(dirPath.endsWith(File.separator)) ? dirPath : (dirPath + File.separator);
          entryMap.put(entryName(dirPath),f);
        }
        expand(f,f.list(),isUpdate);
      }
    }
 else {
      error(formatMsg("error.nosuch.fileordir",String.valueOf(f)));
      ok=false;
    }
  }
}

void expand ( File dir , String [ ] files , boolean isUpdate ) { if ( files == null ) { return ; } for ( int i = 0 ; i < files . length ; i ++ ) { File f ; if ( dir == null ) { f = new File ( files [ i ] ) ; } else { f = new File ( dir , files [ i ] ) ; } if ( f . isFile ( ) ) { if ( entries . add ( f ) ) { if ( isUpdate ) entryMap . put ( entryName ( f . getPath ( ) ) , f ) ; } } else if ( f . isDirectory ( ) ) { if ( entries . add ( f ) ) { if ( isUpdate ) { String dirPath = f . getPath ( ) ; dirPath = ( dirPath . endsWith ( File . separator ) ) ? dirPath : ( dirPath + File . separator ) ; entryMap . put ( entryName ( dirPath ) , f ) ; } expand ( f , f . list ( ) , isUpdate ) ; } } else { error ( formatMsg ( "error.nosuch.fileordir" , String . valueOf ( f ) ) ) ; ok = false ; } } }
expands list of files to process into full list of all files that can be found by recursively descending directories .
