@Override public boolean apply(InputFile inputFile) { return extension.equals(getExtension(inputFile)); }
@Override public FilePredicate hasExtension(String s) { return new FileExtensionPredicate(s); }
public FileExtensionPredicate(String extension) { this.extension = lowercase(extension); }
@Test public void should_match_correct_extension_case_insensitively() throws IOException { FileExtensionPredicate predicate = new FileExtensionPredicate("jAVa"); assertThat(predicate.apply(mockWithName("Program.java"))).isTrue(); assertThat(predicate.apply(mockWithName("Program.JAVA"))).isTrue(); assertThat(predicate.apply(mockWithName("Program.Java"))).isTrue(); assertThat(predicate.apply(mockWithName("Program.JaVa"))).isTrue(); }
@Test public void should_match_correct_extension() throws IOException { FileExtensionPredicate predicate = new FileExtensionPredicate("bat"); assertThat(predicate.apply(mockWithName("prog.bat"))).isTrue(); assertThat(predicate.apply(mockWithName("prog.bat.bat"))).isTrue(); }
public static String getExtension(InputFile inputFile) { return getExtension(inputFile.filename()); }
@Test public void should_not_match_incorrect_extension() throws IOException { FileExtensionPredicate predicate = new FileExtensionPredicate("bat"); assertThat(predicate.apply(mockWithName("prog.batt"))).isFalse(); assertThat(predicate.apply(mockWithName("prog.abat"))).isFalse(); assertThat(predicate.apply(mockWithName("prog."))).isFalse(); assertThat(predicate.apply(mockWithName("prog.bat."))).isFalse(); assertThat(predicate.apply(mockWithName("prog.bat.batt"))).isFalse(); assertThat(predicate.apply(mockWithName("prog"))).isFalse(); }
@Override public FilePredicate hasExtension(String s) { return new FileExtensionPredicate(s); }
static String getExtension(String name) { int index = name.lastIndexOf('.'); if (index < 0) { return ""; } return lowercase(name.substring(index + 1)); }
@Override protected void doAdd(InputFile inputFile) { if (inputFile.language() != null) { languages.add(inputFile.language()); } fileMap.put(inputFile.relativePath(), inputFile); filesByNameCache.put(inputFile.filename(), inputFile); filesByExtensionCache.put(FileExtensionPredicate.getExtension(inputFile), inputFile); }
@Override public FilePredicate hasExtension(String s) { return new FileExtensionPredicate(s); }
public FileExtensionPredicate(String extension) { this.extension = lowercase(extension); }
public InputComponentStore put(String moduleKey, InputFile inputFile) { DefaultInputFile file = (DefaultInputFile) inputFile; addToLanguageCache(moduleKey, file); inputFileByModuleCache.put(moduleKey, file.getModuleRelativePath(), inputFile); globalInputFileCache.put(file.getProjectRelativePath(), inputFile); inputComponents.put(inputFile.key(), inputFile); filesByNameCache.put(inputFile.filename(), inputFile); filesByExtensionCache.put(FileExtensionPredicate.getExtension(inputFile), inputFile); return this; }
static String getExtension(String name) { int index = name.lastIndexOf('.'); if (index < 0) { return ""; } return lowercase(name.substring(index + 1)); }
@Test public void test_empty_extension() { assertThat(getExtension("prog")).isEmpty(); assertThat(getExtension("prog.")).isEmpty(); assertThat(getExtension(".")).isEmpty(); }
@Override public boolean apply(InputFile inputFile) { return extension.equals(getExtension(inputFile)); }
public static String getExtension(InputFile inputFile) { return getExtension(inputFile.filename()); }
public InputComponentStore put(String moduleKey, InputFile inputFile) { DefaultInputFile file = (DefaultInputFile) inputFile; addToLanguageCache(moduleKey, file); inputFileByModuleCache.put(moduleKey, file.getModuleRelativePath(), inputFile); globalInputFileCache.put(file.getProjectRelativePath(), inputFile); inputComponents.put(inputFile.key(), inputFile); filesByNameCache.put(inputFile.filename(), inputFile); filesByExtensionCache.put(FileExtensionPredicate.getExtension(inputFile), inputFile); return this; }
@Override public void doAdd(InputFile inputFile) { if (inputFile.language() != null) { languages.add(inputFile.language()); } inputFileCache.add(inputFile); filesByNameCache.put(inputFile.filename(), inputFile); filesByExtensionCache.put(FileExtensionPredicate.getExtension(inputFile), inputFile); }
@Override protected void doAdd(InputFile inputFile) { if (inputFile.language() != null) { languages.add(inputFile.language()); } fileMap.put(inputFile.relativePath(), inputFile); filesByNameCache.put(inputFile.filename(), inputFile); filesByExtensionCache.put(FileExtensionPredicate.getExtension(inputFile), inputFile); }