X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FIdentifyFile.java;h=f4beccb42d77ccad84cbd77cd53c9c17d981fe59;hb=d03971168d7f0192862cf5b57602ecf3e341b457;hp=4337cf61e932f8cf61de0ef859e12d701f8487ec;hpb=13e9eb31c5b65f9022bc96e7c2d880204bd67c81;p=jalview.git diff --git a/src/jalview/io/IdentifyFile.java b/src/jalview/io/IdentifyFile.java index 4337cf6..f4beccb 100755 --- a/src/jalview/io/IdentifyFile.java +++ b/src/jalview/io/IdentifyFile.java @@ -1,79 +1,135 @@ -/******************** - * 2004 Jalview Reengineered - * Barton Group - * Dundee University - * - * AM Waterhouse - *******************/ - +/* +* Jalview - A Sequence Alignment Editor and Viewer +* Copyright (C) 2005 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 +* as published by the Free Software Foundation; either version 2 +* of the License, or (at your option) any later version. +* +* This program 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 this program; if not, write to the Free Software +* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA +*/ package jalview.io; import java.io.*; + import java.net.*; + +/** + * DOCUMENT ME! + * + * @author $author$ + * @version $Revision$ + */ public class IdentifyFile { - public static String Identify(String file, String protocol) - { - String reply = "PFAM"; - try{ - - BufferedReader reader = null; - - if(protocol.equals("File")) - reader = new BufferedReader(new FileReader(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) ); - - - String data; - while( (data=reader.readLine())!=null) - { - data = data.toUpperCase(); - if(data.indexOf("#")==0 || data.length()<1) - continue; - - if(data.indexOf("PILEUP")>-1 || data.indexOf("//")>-1) - { - reply = "MSF"; - break; - } - else if(data.indexOf("CLUSTAL")>-1) - { - reply = "CLUSTAL"; - break; - } - else if(data.indexOf(">P1;")>-1 || data.indexOf(">DL;")>-1) + /** + * DOCUMENT ME! + * + * @param file DOCUMENT ME! + * @param protocol DOCUMENT ME! + * + * @return DOCUMENT ME! + */ + public static String Identify(String file, String protocol) + { + String reply = "PFAM"; + String error = "FILE NOT FOUND"; + + try { - reply = "PIR"; - break; + BufferedReader reader = null; + + if (protocol.equalsIgnoreCase("File")) + { + reader = new BufferedReader(new FileReader(file)); + } + else if (protocol.equalsIgnoreCase("URL")) + { + error = "URL NOT FOUND"; + URL url = new URL(file); + reader = new BufferedReader(new InputStreamReader( + url.openStream())); + + } + else if (protocol.equalsIgnoreCase("Paste")) + { + reader = new BufferedReader(new StringReader(file)); + } + + String data; + + while ((data = reader.readLine()) != null) + { + data = data.toUpperCase(); + + if ((data.indexOf("#") == 0) || (data.length() < 1)) + { + continue; + } + + if (data.indexOf("PILEUP") > -1) + { + reply = "PileUp"; + + break; + } + + if ((data.indexOf("//") == 0) || + ((data.indexOf("!!") > -1) && + (data.indexOf("!!") < data.indexOf( + "_MULTIPLE_ALIGNMENT ")))) + { + reply = "MSF"; + + break; + } + else if (data.indexOf("CLUSTAL") > -1) + { + reply = "CLUSTAL"; + + break; + } + else if ((data.indexOf(">P1;") > -1) || + (data.indexOf(">DL;") > -1)) + { + reply = "PIR"; + + break; + } + else if (data.indexOf(">") > -1) + { + // could be BLC file, read next line to confirm + data = reader.readLine(); + + if (data.indexOf(">") > -1 || data.indexOf("*") >-1 ) + { + reply = "BLC"; + } + else + { + reply = "FASTA"; + } + + break; + } + } + + reader.close(); } - else if(data.indexOf(">")>-1) + catch (Exception ex) { - // could be BLC file, read next line to confirm - data = reader.readLine(); - if(data.indexOf(">")>-1) - reply = "BLC"; - else - reply = "FASTA"; - - break; + System.err.println("File Identification failed!\n" + ex); + return error; } - } - reader.close(); + return reply; } - catch(Exception ex){ex.printStackTrace();} - - return reply; - } - - }