package org.vamsas.test.simpleclient; import java.io.File; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.text.DateFormat; import java.util.Date; import java.util.Hashtable; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.vamsas.client.simpleclient.VamsasArchive; import org.vamsas.client.simpleclient.VamsasArchiveReader; import org.vamsas.objects.core.ApplicationData; import org.vamsas.objects.core.Entry; import org.vamsas.objects.core.Provenance; import org.vamsas.objects.core.VAMSAS; import org.vamsas.objects.core.VamsasDocument; public class ArchiveWriter { /** * Test program for writing archive files. * form is ArchiveWriter new/modified argive command list */ static Log log = LogFactory.getLog("org.vamsas.test.simpleclient.ArchiveWriter"); /** * @param action * text for action entry * @return new Provenance entry for ArchiveWriter created docs. * TODO: Verify and move to SimpleClient class for provenance handling */ public static Entry newProvenanceEntry(String user, String action) { log.debug("Adding ProvenanceEntry("+user+","+action+")"); Entry e = new Entry(); e.setAction(action); e.setUser(user); e.setDate(new org.exolab.castor.types.Date(new Date())); return e; } public static Provenance newProvenance() { Provenance list = new Provenance(); list.addEntry(newProvenanceEntry("ArchiveWriter", "Created new Vamsas Document")); return list; } private static void mergeVecs(Object[] destvec, Object[] svec1, Object[] svec2) { int i; for (i=0; i0) { ApplicationData[] newdat = new ApplicationData[source.getApplicationDataCount()+dest.getApplicationDataCount()]; ApplicationData[] sappd = source.getApplicationData(); // check refs and update/modify if necessary for (int i=0; i [(commands)]"); return; } File newarch = new File(argv[0]); int argpos = 0; try { // test fully fledged doc construction VamsasArchive varc = new VamsasArchive(newarch, true); VamsasDocument docroot; docroot = new VamsasDocument(); docroot.setProvenance(newProvenance()); while (++argpos