X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FIdentifyFile.java;h=9a248e5abe40694c229844e40d6ec84c9e00889a;hb=174230b4233d9ce80f94527768d2cd2f76da11ab;hp=2442b4bb142254b668fd1e6fd908b52ed8834ade;hpb=588042b69abf8e60bcc950b24c283933c7dd422f;p=jalview.git diff --git a/src/jalview/io/IdentifyFile.java b/src/jalview/io/IdentifyFile.java index 2442b4b..9a248e5 100755 --- a/src/jalview/io/IdentifyFile.java +++ b/src/jalview/io/IdentifyFile.java @@ -1,6 +1,6 @@ /* * Jalview - A Sequence Alignment Editor and Viewer -* Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle +* Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -23,37 +23,73 @@ import java.io.*; import java.net.*; -public class IdentifyFile { - public static String Identify(String file, String protocol) { +/** + * DOCUMENT ME! + * + * @author $author$ + * @version $Revision$ + */ +public class IdentifyFile +{ + /** + * DOCUMENT ME! + * + * @param file DOCUMENT ME! + * @param protocol DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + public String Identify(String file, String protocol) + { String reply = "PFAM"; - - try { + String error = "FILE NOT FOUND"; + try + { BufferedReader reader = null; - if (protocol.equals("File")) { - reader = new BufferedReader(new FileReader(file)); + if (protocol.equals(AppletFormatAdapter.FILE)) + { + reader = new BufferedReader(new FileReader(file)); + } + else if (protocol.equals(AppletFormatAdapter.URL)) + { + error = "URL NOT FOUND"; + URL url = new URL(file); + reader = new BufferedReader(new InputStreamReader( + url.openStream())); + + } + else if (protocol.equals(AppletFormatAdapter.PASTE)) + { + reader = new BufferedReader(new StringReader(file)); } - else if (protocol.equals("URL")) { - reply = "URL NOT FOUND"; - - URL url = new URL(file); - reader = new BufferedReader(new InputStreamReader( - url.openStream())); - reply = "error"; - } else if (protocol.equals("Paste")) { - reader = new BufferedReader(new StringReader(file)); + else if (protocol.equals(AppletFormatAdapter.CLASSLOADER)) + { + java.io.InputStream is = getClass().getResourceAsStream("/" + + file); + reader = new BufferedReader(new java.io.InputStreamReader(is)); } String data; - while ((data = reader.readLine()) != null) { + while ((data = reader.readLine()) != null) + { data = data.toUpperCase(); - if ((data.indexOf("#") == 0) || (data.length() < 1)) { + if ( (data.indexOf("# STOCKHOLM") > -1)) + { + reply = "STH"; + + break; + } + + if ((data.indexOf("#") == 0) || (data.length() < 1)) + { continue; } - if (data.indexOf("PILEUP") > -1) { + if (data.indexOf("PILEUP") > -1) + { reply = "PileUp"; break; @@ -62,36 +98,61 @@ public class IdentifyFile { if ((data.indexOf("//") == 0) || ((data.indexOf("!!") > -1) && (data.indexOf("!!") < data.indexOf( - "_MULTIPLE_ALIGNMENT ")))) { + "_MULTIPLE_ALIGNMENT ")))) + { reply = "MSF"; break; - } else if (data.indexOf("CLUSTAL") > -1) { + } + else if (data.indexOf("CLUSTAL") > -1) + { reply = "CLUSTAL"; break; - } else if ((data.indexOf(">P1;") > -1) || - (data.indexOf(">DL;") > -1)) { + } + else if ((data.indexOf(">P1;") > -1) || + (data.indexOf(">DL;") > -1)) + { reply = "PIR"; break; - } else if (data.indexOf(">") > -1) { + } + else if (data.indexOf(">") > -1) + { // could be BLC file, read next line to confirm data = reader.readLine(); - if (data.indexOf(">") > -1) { + if (data.indexOf(">") > -1 || data.indexOf("*") >-1 ) + { reply = "BLC"; - } else { + } + else + { reply = "FASTA"; } break; - } + } + else if (data.indexOf("HEADER") > -1 || + data.indexOf("ATOM") > -1) + { + reply = "PDB"; + break; + } + else if (data.indexOf(":") < data.indexOf(",")) // && data.indexOf(",")