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