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