Warn if URL not found
[jalview.git] / src / jalview / io / IdentifyFile.java
1 /********************\r
2  * 2004 Jalview Reengineered\r
3  * Barton Group\r
4  * Dundee University\r
5  *\r
6  * AM Waterhouse\r
7  *******************/\r
8 \r
9 package jalview.io;\r
10 \r
11 import java.io.*;\r
12 import java.net.*;\r
13 \r
14 public class IdentifyFile\r
15 {\r
16   public static String Identify(String file, String protocol)\r
17   {\r
18     String reply = "PFAM";\r
19     try{\r
20 \r
21       BufferedReader reader = null;\r
22 \r
23       if(protocol.equals("File"))\r
24         reader = new BufferedReader(new FileReader(file));\r
25 \r
26       else if (protocol.equals("URL"))\r
27       {\r
28         reply = "URL NOT FOUND";\r
29         URL url = new URL(file);\r
30         reader = new BufferedReader(new InputStreamReader( url.openStream() ) );\r
31         reply = "error";\r
32       }\r
33       else if( protocol.equals("Paste"))\r
34         reader = new BufferedReader( new StringReader(file) );\r
35 \r
36 \r
37       String data;\r
38       while( (data=reader.readLine())!=null)\r
39       {\r
40         data = data.toUpperCase();\r
41         if(data.indexOf("#")==0 || data.length()<1)\r
42           continue;\r
43 \r
44         if(data.indexOf("PILEUP")>-1)\r
45         {\r
46           reply = "PileUp";\r
47           break;\r
48         }\r
49         if((data.indexOf("//")==0)\r
50            || ((data.indexOf("!!")>-1)\r
51            && (data.indexOf("!!")<data.indexOf("_MULTIPLE_ALIGNMENT "))))\r
52         {\r
53           reply = "MSF";\r
54           break;\r
55         }\r
56         else if(data.indexOf("CLUSTAL")>-1)\r
57         {\r
58           reply = "CLUSTAL";\r
59           break;\r
60         }\r
61         else if(data.indexOf(">P1;")>-1 || data.indexOf(">DL;")>-1)\r
62         {\r
63           reply = "PIR";\r
64           break;\r
65         }\r
66         else if(data.indexOf(">")>-1)\r
67         {\r
68           // could be BLC file, read next line to confirm\r
69           data = reader.readLine();\r
70           if(data.indexOf(">")>-1)\r
71             reply = "BLC";\r
72           else\r
73             reply = "FASTA";\r
74 \r
75             break;\r
76         }\r
77       }\r
78       reader.close();\r
79     }\r
80     catch(Exception ex){\r
81       System.err.println("File Identification failed!\n"+ex);}\r
82 \r
83     return reply;\r
84   }\r
85 \r
86 \r
87 }\r