/** * @param inputFile input file * @return a new File with prefix ".sorted" added before the extension */ public static File generateOutputFile(File inputFile) { String extension = Utils.getExtension(inputFile); String nameWithoutExtension = Utils.getFileNameWithoutExtension(inputFile); String newFileName = nameWithoutExtension + ".sorted." + extension; File parentDirectory = inputFile.getParentFile(); return new File(parentDirectory, newFileName); }
/** * @param inputFile * @return a string comparator adapted that compares the lines of the input file * @throws InvalidParameterException */ private static Comparator<String> generateComparator(File inputFile) throws InvalidParameterException { String fileExtension = Utils.getExtension(inputFile); if (fileExtension == null) { throw new InvalidParameterException( "Cannot sort the specified file: " + inputFile.getName() + "\n" + "Files without extension are not recognized by the sorting function"); } else if (fileExtension.equalsIgnoreCase("gff")) { return new GenomicFileLineComparator(0, 3, 4); } else if (fileExtension.equalsIgnoreCase("gr")) { return new GenomicFileLineComparator(0, 1, 2); } else if (fileExtension.equalsIgnoreCase("bed")) { return new GenomicFileLineComparator(0, 1, 2); } else if (fileExtension.equalsIgnoreCase("bgr")) { return new GenomicFileLineComparator(0, 1, 2); } else if (fileExtension.equalsIgnoreCase("pair")) { return new GenomicFileLineComparator(0, 4, 4); } else if (fileExtension.equalsIgnoreCase("psl")) { return new GenomicFileLineComparator(13, 15, 16); } else if (fileExtension.equalsIgnoreCase("sam")) { return new GenomicFileLineComparator(0, 3, 3); } else { throw new InvalidParameterException( "Cannot sort the specified file: " + inputFile.getName() + "\n" + "Files with " + fileExtension + " extension are not recognized by the sorting function"); } }