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>