X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FFileFormats.java;h=19a61cf1e185b990369e4b068a883e92c1caaacb;hb=00918171094ad58563bd0b82e18ecf19537ba132;hp=a18d4e82728e0253f202df0a7b8f828c87fddb94;hpb=95ebbef7b78bf266a8252bd479510be3c80cd234;p=jalview.git diff --git a/src/jalview/io/FileFormats.java b/src/jalview/io/FileFormats.java index a18d4e8..19a61cf 100644 --- a/src/jalview/io/FileFormats.java +++ b/src/jalview/io/FileFormats.java @@ -26,10 +26,9 @@ public class FileFormats private static Map formats; /* - * Formats in this set are built in to Jalview and instantiated - * on startup, any others are added dynamically + * Formats in this set are capable of being identified by IdentifyFile */ - private static Set builtIn; + private static Set identifiable; public static FileFormats getInstance() { @@ -52,21 +51,20 @@ public class FileFormats public synchronized void reset() { formats = new LinkedHashMap(); - builtIn = new HashSet(); + identifiable = new HashSet(); for (FileFormat format : FileFormat.values()) { - registerFileFormat(format, true); + registerFileFormat(format, format.isIdentifiable()); } } /** - * Answers false if the format is one 'built in' to Jalview, or true if not - * (meaning it has been added dynamically at runtime). Only built-in formats - * can be validated by IdentifyFile. Answers true for a null input. + * Answers true if the format is one that can be identified by IdentifyFile. + * Answers false for a null value. */ - public boolean isDynamic(FileFormatI f) + public boolean isIdentifiable(FileFormatI f) { - return !builtIn.contains(f); + return identifiable.contains(f); } /** @@ -76,11 +74,13 @@ public class FileFormats */ public void registerFileFormat(FileFormatI format) { - registerFileFormat(format, false); + boolean isIdentifiable = format instanceof FileFormat + && ((FileFormat) format).isIdentifiable(); + registerFileFormat(format, isIdentifiable); } protected void registerFileFormat(FileFormatI format, - boolean isBuiltIn) + boolean isIdentifiable) { String name = format.getName().toUpperCase(); if (formats.containsKey(name)) @@ -88,9 +88,9 @@ public class FileFormats System.err.println("Overwriting file format: " + format.getName()); } formats.put(name, format); - if (isBuiltIn) + if (isIdentifiable) { - builtIn.add(format); + identifiable.add(format); } } @@ -102,7 +102,7 @@ public class FileFormats public void deregisterFileFormat(String name) { FileFormatI ff = formats.remove(name.toUpperCase()); - builtIn.remove(ff); + identifiable.remove(ff); } /**