// // Bundle.java // // // Created by rogo on Thu Jan 30 2003. // Copyright (c) 2001 __MyCompanyName__. All rights reserved. // import java.util.*; import java.io.*; public class Bundle { String name=""; int grp=0; Vector documents=new Vector(); Hashtable docs=new Hashtable(); Hashtable docsLocator=new Hashtable(); static Hashtable genresId=new Hashtable(); static Hashtable genresLabel=new Hashtable(); static Hashtable genresName=new Hashtable(); static Vector genVec= new Vector(); public Bundle() { } public void exportToXML(File f) throws Exception { FileWriter fw = new FileWriter(f); BufferedWriter buffr = new BufferedWriter(fw); buffr.write(""); buffr.newLine(); buffr.write("\n"); // write Documents for(int j=0;j"); buffr.close(); fw.close(); } public void exportToXMLDownload(File f,File startFile) throws Exception { String fileLink="";// to save original fileLink FileWriter fw = new FileWriter(f); BufferedWriter buffr = new BufferedWriter(fw); buffr.write(""); buffr.newLine(); buffr.write("\n"); // write Documents for(int j=0;j"); buffr.close(); fw.close(); } static class Document { int docID=0; int ver=0; String title = ""; String type = ""; // edoc Type e.g. Archimedes Image Collection String locator=""; String comment=""; String placeofevent=""; int fileID=0; int fileVer=0; String fileName=""; String mimeType=""; String md5cs=""; int size=0; String fileLink=""; Hashtable metaTags = new Hashtable(); long modified = System.currentTimeMillis(); boolean downloadAgain = false; static int lastDocID=0; public Document() { docID=++lastDocID; } public Document(int docID,int ver,String title,String locator,String comment,String placeofevent,int fileID,int fileVer,String fileName,String mimeType,String md5cs, int size, String fileLink) { this.docID=docID; this.ver=ver; this.title=title; this.locator=locator; this.comment=comment; this.placeofevent=placeofevent; this.fileID=fileID; this.fileVer=fileVer; this.fileName=fileName; this.mimeType=mimeType; this.md5cs=md5cs; this.size=size; this.fileLink=fileLink; } public void addData(String key,String value) { //System.out.println(key+" "+value); // known tags if(key.equals("docID")) docID = Integer.parseInt(value); else if(key.equals("ver")) ver = Integer.parseInt(value); else if(key.equals("title")) { title=value; metaTags.put(key,value); } else if(key.equals("type")) type=value; else if(key.equals("locator")||key.equals("locater")) // wrong Typing in interface { locator=value; // temporarly because of typing error metaTags.put("locator",value); } else if(key.equals("comment")) { comment=value; metaTags.put(key,value); } else if(key.equals("placeofevent")) { placeofevent=value; metaTags.put(key,value); } else if(key.equals("fileID")) fileID = Integer.parseInt(value); else if(key.equals("fileVer")) fileVer = Integer.parseInt(value); else if(key.equals("filename")) fileName=value; else if(key.equals("mimetype")) mimeType=value; else if(key.equals("md5cs")) md5cs=value; else if(key.equals("size")) size=Integer.parseInt(value); else if(key.equals("filelink")) fileLink=value; else if(key.equals("lastmodified")) { modified = Long.parseLong(value); } // end of known tags else metaTags.put(key,value); //if(key.equals("docaffs")) System.out.println(value); } public void removeData(String key) { metaTags.remove(key); } public void exportToXML(BufferedWriter buffr) throws Exception { buffr.write(" \n"); buffr.write(" "+type+"\n"); Enumeration en = metaTags.keys(); while(en.hasMoreElements()) { String key=(String)en.nextElement(); buffr.write(" <"+key+">"); buffr.write((String)metaTags.get(key)); buffr.write("\n"); } buffr.write(" \n"); buffr.write(" "+fileName+"\n"); buffr.write(" "+mimeType+"\n"); buffr.write(" "+md5cs+"\n"); buffr.write(" "+size+"\n"); buffr.write(" "+fileLink+"\n"); buffr.write(" "+modified+"\n"); buffr.write(" \n"); buffr.write(" \n"); } public String toString() { return "Document "+docID+" "+size; } } static class Genre { static boolean debug=false; Integer id; String label=""; String name=""; String definition=""; public Genre() {} public String toString() { if(debug) return id+"\n"+label+"\n"+name+"\n"+definition; else return id+" "+label; } public void addData(String key,String value) { //System.out.println(key+" "+value); // known tags if(key.equals("label")) label = value; else if(key.equals("name")) name = value; else if(key.equals("definition")) definition=value; } } }