68e6ff4c536b1588aae45dcab0a3d47b83c89db4
[vamsas.git] / src / uk / ac / vamsas / test / simpleclient / ArchiveReader.java
1 package uk.ac.vamsas.test.simpleclient;
2
3 import java.io.BufferedInputStream;
4 import java.io.File;
5 import java.io.InputStream;
6 import java.io.InputStreamReader;
7
8
9 import uk.ac.vamsas.client.simpleclient.VamsasArchiveReader;
10 import uk.ac.vamsas.objects.core.VAMSAS;
11 import uk.ac.vamsas.objects.core.VamsasDocument;
12
13 public class ArchiveReader {
14   /**
15    * tests VamsasArchiveReader archive reader on a vamsas jar file
16    * @param args
17    */
18   public static void main(String args[]) {
19     
20     try {
21       File av = new File(args[0]);
22       VamsasArchiveReader var = new VamsasArchiveReader(av);
23       VAMSAS roots[]=null;
24       if (var.isValid()) {
25         InputStreamReader vdoc = new InputStreamReader(var.getVamsasDocumentStream());
26         VamsasDocument doc = VamsasDocument.unmarshal(vdoc);
27         if (ArchiveReports.reportDocument(doc, var, true, System.out)) {
28           roots = doc.getVAMSAS();
29         }
30       } else {
31         InputStream vxmlis = var.getVamsasXmlStream();
32         
33         if (vxmlis!=null) { // Might be an old vamsas file.
34           BufferedInputStream ixml = new BufferedInputStream(var.getVamsasXmlStream());
35           InputStreamReader vxml = new InputStreamReader(ixml);
36           VAMSAS root;
37           // unmarshal seems to always close the stream (should check this)
38           if ((root = VAMSAS.unmarshal(vxml))!=null) {
39             System.out.println("Read a root.");
40             roots = new VAMSAS[1];
41             roots[0] = root;
42           }
43         }
44       }
45       if (!ArchiveReports.rootReport(roots, true, System.out))
46         System.err.print(args[0]+" is not a valid vamsas archive.");
47     } catch (Exception e) {
48       e.printStackTrace(System.err);
49     }
50   }
51 }