X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FIdentifyFile.java;h=6b32fe1a867d4214efd90b7a08e5943bfedbd72f;hb=56e5bdc625697d50d7d3f422616f0f1b40ca2828;hp=eebde9b745f2820c23f468742b1816da5f962b41;hpb=128c1c559ce7749ba5a39d30e6108f5ce8f4b99e;p=jalview.git diff --git a/src/jalview/io/IdentifyFile.java b/src/jalview/io/IdentifyFile.java index eebde9b..6b32fe1 100755 --- a/src/jalview/io/IdentifyFile.java +++ b/src/jalview/io/IdentifyFile.java @@ -1,86 +1,146 @@ -/******************** - * 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) - { - reply = "PileUp"; - break; - } - if((data.indexOf("!!")>-1) - && (data.indexOf("!!")-1) - { - reply = "CLUSTAL"; - break; - } - else if(data.indexOf(">P1;")>-1 || data.indexOf(">DL;")>-1) - { - reply = "PIR"; - break; + BufferedReader reader = null; + + 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(AppletFormatAdapter.CLASSLOADER)) + { + java.io.InputStream is = getClass().getResourceAsStream("/" + + file); + reader = new BufferedReader(new java.io.InputStreamReader(is)); + } + + 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; + } + 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){ - System.err.println("File Identification failed!"); ex.printStackTrace();} - - return reply; - } - - }