Annotation of edoc-applet/Bundle.java, revision 1.2
1.1 rogo 1: //
2: // Bundle.java
3: //
4: //
5: // Created by rogo on Thu Jan 30 2003.
6: // Copyright (c) 2001 __MyCompanyName__. All rights reserved.
7: //
8: import java.util.*;
9: import java.io.*;
10:
11: public class Bundle
12: {
13: String name="";
14: int grp=0;
15: Vector documents=new Vector();
16: Hashtable docs=new Hashtable();
17: Hashtable docsLocator=new Hashtable();
18: static Hashtable genresId=new Hashtable();
19: static Hashtable genresLabel=new Hashtable();
20: static Hashtable genresName=new Hashtable();
21:
22: static Vector genVec= new Vector();
23: public Bundle()
24: {
25:
26: }
27: public void exportToXML(File f) throws Exception
28: {
29: FileWriter fw = new FileWriter(f);
30: BufferedWriter buffr = new BufferedWriter(fw);
31: buffr.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
32: buffr.newLine();
33: buffr.write("<edoc>\n");
34: // write Documents
35: for(int j=0;j<docs.size();++j)
36: {
37: Document doc=(Document)documents.elementAt(j);
38: doc.exportToXML(buffr);
39: }
40:
41: buffr.newLine();
42: buffr.write("</edoc>");
43:
44: buffr.close();
45: fw.close();
46: }
47: static class Document
48: {
49: int docID=0;
50: int ver=0;
51: String title = "";
52: String type = ""; // edoc Type e.g. Archimedes Image Collection
53: String locator="";
54: String comment="";
55: String placeofevent="";
56: int fileID=0;
57: int fileVer=0;
58: String fileName="";
59: String mimeType="";
60: String md5cs="";
61: int size=0;
62: String fileLink="";
63: Hashtable metaTags = new Hashtable();
1.2 ! rogo 64: long modified = System.currentTimeMillis();
1.1 rogo 65:
66: static int lastDocID=0;
67: public Document()
68: {
69: docID=++lastDocID;
70: }
71: 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)
72: {
73: this.docID=docID;
74: this.ver=ver;
75: this.title=title;
76: this.locator=locator;
77: this.comment=comment;
78: this.placeofevent=placeofevent;
79: this.fileID=fileID;
80: this.fileVer=fileVer;
81: this.fileName=fileName;
82: this.mimeType=mimeType;
83: this.md5cs=md5cs;
84: this.size=size;
85: this.fileLink=fileLink;
86: }
87: public void addData(String key,String value)
88: {
89: //System.out.println(key+" "+value);
90: // known tags
91: if(key.equals("docID"))
92: docID = Integer.parseInt(value);
93: else if(key.equals("ver"))
94: ver = Integer.parseInt(value);
95: else if(key.equals("title"))
96: {
97: title=value;
98: metaTags.put(key,value);
99: }
100: else if(key.equals("type"))
101: type=value;
102: else if(key.equals("locator")||key.equals("locater")) // wrong Typing in interface
103: {
104: locator=value;
105: // temporarly because of typing error
106: metaTags.put("locator",value);
107: }
108: else if(key.equals("comment"))
109: {
110: comment=value;
111: metaTags.put(key,value);
112: }
113: else if(key.equals("placeofevent"))
114: {
115: placeofevent=value;
116: metaTags.put(key,value);
117: }
118: else if(key.equals("fileID"))
119: fileID = Integer.parseInt(value);
120: else if(key.equals("fileVer"))
121: fileVer = Integer.parseInt(value);
122: else if(key.equals("filename"))
123: fileName=value;
124: else if(key.equals("mimetype"))
125: mimeType=value;
126: else if(key.equals("md5cs"))
127: md5cs=value;
128: else if(key.equals("size"))
129: size=Integer.parseInt(value);
130: else if(key.equals("filelink"))
131: fileLink=value;
1.2 ! rogo 132: else if(key.equals("lastmodified"))
! 133: {
! 134: modified = Long.parseLong(value);
! 135: }
1.1 rogo 136: // end of known tags
137: else
138: metaTags.put(key,value);
1.2 ! rogo 139: //if(key.equals("docaffs")) System.out.println(value);
1.1 rogo 140: }
141: public void removeData(String key)
142: {
143: metaTags.remove(key);
144: }
145: public void exportToXML(BufferedWriter buffr) throws Exception
146: {
147: buffr.write(" <doc id = \""+docID+"\" ver = \""+ver+"\">\n");
148: buffr.write(" <type>"+type+"</type>\n");
149:
150: Enumeration en = metaTags.keys();
151: while(en.hasMoreElements())
152: {
153: String key=(String)en.nextElement();
154: buffr.write(" <"+key+">");
155: buffr.write((String)metaTags.get(key));
156: buffr.write("</"+key+">\n");
157:
158: }
159: buffr.write(" <file id = \""+fileID+"\" ver = \""+fileVer+"\">\n");
160: buffr.write(" <filename>"+fileName+"</filename>\n");
161: buffr.write(" <mimetype>"+mimeType+"</mimetype>\n");
162: buffr.write(" <md5cs>"+md5cs+"</md5cs>\n");
163: buffr.write(" <size>"+size+"</size>\n");
164: buffr.write(" <filelink>"+fileLink+"</filelink>\n");
1.2 ! rogo 165: buffr.write(" <lastmodified>"+modified+"</lastmodified>\n");
1.1 rogo 166: buffr.write(" </file>\n");
167: buffr.write(" </doc>\n");
168: }
169: public String toString() {
170: return "Document "+docID+" "+size;
171: }
172:
173: }
174: static class Genre
175: {
176:
177: static boolean debug=false;
178: Integer id;
179: String label="";
180: String name="";
181: String definition="";
182: public Genre() {}
183: public String toString()
184: {
185: if(debug)
186: return id+"\n"+label+"\n"+name+"\n"+definition;
187: else return id+" "+label;
188: }
189: public void addData(String key,String value)
190: {
191: //System.out.println(key+" "+value);
192: // known tags
193: if(key.equals("label"))
194: label = value;
195: else if(key.equals("name"))
196: name = value;
197: else if(key.equals("definition"))
198: definition=value;
199: }
200: }
201: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>