@Override protected List<AlignmentFile> getAlignmentFiles(int currentIter) { // sort input file alphabetically to look nicer File inputDirectory = new File(this.inputDirectory); File[] listOfFiles = inputDirectory.listFiles(); Arrays.sort(listOfFiles, new NaturalOrderFilenameComparator()); List<AlignmentFile> alignmentDataList = new ArrayList<AlignmentFile>(); List<Feature> allFeatures = new ArrayList<Feature>(); // load feature data for (int i = 0; i < listOfFiles.length; i++) { if (listOfFiles[i].isFile()) { File myFile = listOfFiles[i]; String filename = myFile.getName(); String path = myFile.getPath(); String extension = filename.substring(filename.lastIndexOf('.') + 1); // ignore other crap files in the directory if (!"txt".equals(extension)) { continue; } List<Feature> features = new ArrayList<Feature>(); try { features = this.loadFeatures(path); } catch (ValidityException e) { e.printStackTrace(); } catch (ParsingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } AlignmentFile alignmentData = new AlignmentFile(i, myFile, features); if (verbose) { System.out.println( "Load " + filename + " with " + alignmentData.getFeaturesCount() + " features"); } alignmentDataList.add(alignmentData); allFeatures.addAll(alignmentData.getFeatures()); } } this.alignmentFiles = alignmentDataList; return alignmentDataList; }