File:  [Repository] / edoc-applet / Bundle.java
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Tue Jun 17 10:38:55 2003 UTC (21 years ago) by rogo
Branches: MAIN
CVS tags: HEAD
Initial revision

    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();
   64:     
   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; 
  132:     // end of known tags
  133:       else
  134:       metaTags.put(key,value);
  135:     if(key.equals("docaffs")) System.out.println(value);
  136:     }
  137:     public void removeData(String key)
  138:     {
  139:       metaTags.remove(key);
  140:     }
  141:     public void exportToXML(BufferedWriter buffr) throws Exception
  142:     {
  143:       buffr.write("  <doc id = \""+docID+"\" ver = \""+ver+"\">\n");
  144:       buffr.write("    <type>"+type+"</type>\n");
  145: 
  146:       Enumeration en = metaTags.keys();
  147:       while(en.hasMoreElements())
  148:       {
  149:         String key=(String)en.nextElement();
  150:         buffr.write("   <"+key+">");
  151:         buffr.write((String)metaTags.get(key));
  152:         buffr.write("</"+key+">\n");
  153:        
  154:       }
  155:       buffr.write("   <file id = \""+fileID+"\" ver = \""+fileVer+"\">\n");
  156:       buffr.write("     <filename>"+fileName+"</filename>\n");
  157:       buffr.write("     <mimetype>"+mimeType+"</mimetype>\n");
  158:       buffr.write("     <md5cs>"+md5cs+"</md5cs>\n");
  159:       buffr.write("     <size>"+size+"</size>\n");
  160:       buffr.write("     <filelink>"+fileLink+"</filelink>\n");  
  161:       buffr.write("   </file>\n");
  162:       buffr.write("  </doc>\n"); 
  163:     }
  164:     public String toString() {
  165:      return "Document "+docID+" "+size;
  166:     }
  167:     
  168:   } 
  169:   static class Genre 
  170:   {
  171:  
  172:     static boolean debug=false; 
  173:     Integer id; 
  174:     String label=""; 
  175:     String name="";
  176:     String definition="";
  177:     public Genre()  {}
  178:     public String toString() 
  179:     {
  180:       if(debug)
  181:       return id+"\n"+label+"\n"+name+"\n"+definition;
  182:       else return id+"  "+label;
  183:     }
  184:     public void addData(String key,String value)
  185:     {
  186:       //System.out.println(key+" "+value);
  187:       // known tags
  188:       if(key.equals("label"))
  189:       label = value;
  190:       else if(key.equals("name"))
  191:       name = value;
  192:       else if(key.equals("definition"))
  193:         definition=value;
  194:     }
  195:   }
  196: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>