import java.io.File;
import java.io.InputStream;
import java.io.InputStreamReader;
-import java.util.Vector;
import org.vamsas.client.simpleclient.VamsasArchiveReader;
+import org.vamsas.objects.core.ApplicationData;
import org.vamsas.objects.core.VAMSAS;
import org.vamsas.objects.core.VamsasDocument;
public class ArchiveReader {
- public static boolean reportDocument(VamsasDocument document) {
+ public static boolean reportDocument(VamsasDocument document, VamsasArchiveReader archive) {
if (document!=null) {
System.out.print("Vamsas Document version '"+document.getVersion()+"'");
System.out.print("Document contains "+document.getVAMSASCount()+" VAMSAS Elements and "+document.getApplicationDataCount()+" elements.\n");
+ if (document.getApplicationDataCount()>0) {
+ System.out.print("There are "+document.getApplicationDataCount()+" ApplicationData references.\n");
+ ApplicationData appd[] = document.getApplicationData();
+ for (int i=0,j=appd.length; i<j; i++) {
+ System.out.print("Application "+i+": '"+appd[i].getName()+"'\nVersion '"+appd[i].getVersion()+"'\nURN: '"+appd[i].getUrn()+"'\n");
+ System.out.print("AppData is ");
+ if (appd[i].getAppDataChoice().getDataReference()==null) {
+ String appData=appd[i].getAppDataChoice().getData();
+ if (appData.length()>1) {
+ System.out.print("a reference ("+appData+")");
+ InputStream jstrm;
+ if ((jstrm=archive.getAppdataStream(appData))!=null)
+ System.out.println(" which resolves to a JarEntry.");
+ else {
+ System.out.println(" which does not resolve to a JarEntry.");
+ System.err.println("Unresolved appdata reference '"+appData+"'");
+ }
+ } else {
+ System.out.println("an empty reference.");
+ }
+ } else {
+ System.out.println("an embedded chunk of "+appd[i].getAppDataChoice().getDataReference().length+" bytes.");
+ }
+ }
+
+ }
return true;
} else {
System.out.print("Document Object is null");
if (var.isValid()) {
InputStreamReader vdoc = new InputStreamReader(var.getVamsasDocumentStream());
VamsasDocument doc = VamsasDocument.unmarshal(vdoc);
- if (reportDocument(doc)) {
+ if (reportDocument(doc, var)) {
roots = doc.getVAMSAS();
}
} else {