X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fio%2FFileFormats.java;h=aadcdb9d23bb3c7da23f91aa78506e18c29c414c;hb=afffa24481a7d3cb65ae41e0948c16a5f490f302;hp=a18d4e82728e0253f202df0a7b8f828c87fddb94;hpb=95ebbef7b78bf266a8252bd479510be3c80cd234;p=jalview.git
diff --git a/src/jalview/io/FileFormats.java b/src/jalview/io/FileFormats.java
index a18d4e8..aadcdb9 100644
--- a/src/jalview/io/FileFormats.java
+++ b/src/jalview/io/FileFormats.java
@@ -1,3 +1,23 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see .
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.io;
import java.util.ArrayList;
@@ -26,10 +46,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 +71,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 +94,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 +108,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 +122,7 @@ public class FileFormats
public void deregisterFileFormat(String name)
{
FileFormatI ff = formats.remove(name.toUpperCase());
- builtIn.remove(ff);
+ identifiable.remove(ff);
}
/**