git://source.jalview.org
/
jalview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'develop' into features/JAL-4219_extended_fasta_rna_ss
[jalview.git]
/
src
/
jalview
/
io
/
IdentifyFile.java
diff --git
a/src/jalview/io/IdentifyFile.java
b/src/jalview/io/IdentifyFile.java
index
ea87058
..
8251c22
100755
(executable)
--- a/
src/jalview/io/IdentifyFile.java
+++ b/
src/jalview/io/IdentifyFile.java
@@
-21,6
+21,7
@@
package jalview.io;
import java.io.File;
package jalview.io;
import java.io.File;
+import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Locale;
import java.io.IOException;
import java.util.Locale;
@@
-35,8
+36,10
@@
import jalview.bin.Console;
public class IdentifyFile
{
public class IdentifyFile
{
+ private static final String XMLHEADER = "<?XML VERSION=\"1.0\" ENCODING=\"UTF-8\" STANDALONE=\"YES\"?>";
+
public FileFormatI identify(Object file, DataSourceType protocol)
public FileFormatI identify(Object file, DataSourceType protocol)
- throws FileFormatException
+ throws FileFormatException, FileNotFoundException
{
// BH 2018
return (file instanceof File ? identify((File) file, protocol)
{
// BH 2018
return (file instanceof File ? identify((File) file, protocol)
@@
-81,10
+84,11
@@
public class IdentifyFile
* @throws FileFormatException
*/
public FileFormatI identify(String file, DataSourceType sourceType)
* @throws FileFormatException
*/
public FileFormatI identify(String file, DataSourceType sourceType)
- throws FileFormatException
+ throws FileFormatException, FileNotFoundException
{
String emessage = "UNIDENTIFIED FILE PARSING ERROR";
FileParse parser = null;
{
String emessage = "UNIDENTIFIED FILE PARSING ERROR";
FileParse parser = null;
+ FileNotFoundException fnf = null;
try
{
parser = new FileParse(file, sourceType);
try
{
parser = new FileParse(file, sourceType);
@@
-92,6
+96,14
@@
public class IdentifyFile
{
return identify(parser);
}
{
return identify(parser);
}
+ } catch (FileNotFoundException e)
+ {
+ fnf = e;
+ emessage = "Could not find '" + file + "'";
+ Console.error("Could not find '" + file + "'", e);
+ } catch (IOException e)
+ {
+ Console.error("Error whilst trying to read " + file, e);
} catch (Exception e)
{
Console.error("Error whilst identifying " + file, e);
} catch (Exception e)
{
Console.error("Error whilst identifying " + file, e);
@@
-101,6
+113,10
@@
public class IdentifyFile
{
throw new FileFormatException(parser.errormessage);
}
{
throw new FileFormatException(parser.errormessage);
}
+ if (fnf != null)
+ {
+ throw (fnf);
+ }
throw new FileFormatException(emessage);
}
throw new FileFormatException(emessage);
}
@@
-134,6
+150,7
@@
public class IdentifyFile
String data;
int bytesRead = 0;
int trimmedLength = 0;
String data;
int bytesRead = 0;
int trimmedLength = 0;
+ boolean isXml = false; // set true if first line is XMLHEADER
boolean lineswereskipped = false;
boolean isBinary = false; // true if length is non-zero and non-printable
// characters are encountered
boolean lineswereskipped = false;
boolean isBinary = false; // true if length is non-zero and non-printable
// characters are encountered
@@
-188,6
+205,10
@@
public class IdentifyFile
reply = FileFormat.ScoreMatrix;
break;
}
reply = FileFormat.ScoreMatrix;
break;
}
+ if (data.startsWith(XMLHEADER) && !lineswereskipped)
+ {
+ isXml = true;
+ }
if (data.startsWith("LOCUS"))
{
reply = FileFormat.GenBank;
if (data.startsWith("LOCUS"))
{
reply = FileFormat.GenBank;
@@
-346,6
+367,12
@@
public class IdentifyFile
reply = FileFormat.Rnaml;
break;
}
reply = FileFormat.Rnaml;
break;
}
+ if (isXml && data.contains(
+ "<NS2:JALVIEWUSERCOLOURS SCHEMENAME=\"SEQUENCE FEATURES\" XMLNS:NS2=\"WWW.JALVIEW.ORG/COLOURS\">"))
+ {
+ reply = FileFormat.FeatureSettings;
+ break;
+ }
}
if ((data.length() < 1) || (data.indexOf("#") == 0))
}
if ((data.length() < 1) || (data.indexOf("#") == 0))
@@
-481,6
+508,10
@@
public class IdentifyFile
try
{
type = ider.identify(args[i], DataSourceType.FILE);
try
{
type = ider.identify(args[i], DataSourceType.FILE);
+ } catch (FileNotFoundException e)
+ {
+ Console.error(String.format("Error '%s' fetching file %s", args[i],
+ e.getMessage()));
} catch (FileFormatException e)
{
Console.error(
} catch (FileFormatException e)
{
Console.error(