File:  [Repository] / edoc-applet / Bundle.java
Revision 1.3: download - view: text, annotated - select for diffs - revision graph
Mon Jul 21 10:14:15 2003 UTC (20 years, 11 months ago) by rogo
Branches: MAIN
CVS tags: HEAD
Download working

    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: 
   48:   public void exportToXMLDownload(File f,File startFile) throws Exception
   49:   {
   50:     String fileLink="";// to save original fileLink
   51:     FileWriter fw = new FileWriter(f);
   52:     BufferedWriter buffr = new BufferedWriter(fw);
   53:     buffr.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
   54:     buffr.newLine();
   55:     buffr.write("<edoc>\n");
   56:     // write Documents
   57:     for(int j=0;j<docs.size();++j)
   58:     {
   59:       Document doc=(Document)documents.elementAt(j);
   60:       if(doc.fileLink!="")
   61:       {
   62:         
   63:         fileLink=doc.fileLink;
   64:         doc.fileLink=startFile.getAbsolutePath()+"/images/"+doc.fileName;
   65:         doc.modified = new File(doc.fileLink).lastModified();
   66:        // System.out.println(doc.fileLink);
   67:       } else fileLink="";
   68:       doc.exportToXML(buffr);
   69:       doc.fileLink=fileLink;
   70:     }
   71:     
   72:     buffr.newLine();
   73:     buffr.write("</edoc>");
   74:   
   75:     buffr.close();
   76:     fw.close();
   77:   }
   78:   static class Document
   79:   {
   80:     int docID=0;
   81:     int ver=0;
   82:     String title = "";
   83:     String type =  ""; // edoc Type e.g.  Archimedes Image Collection 
   84:     String locator="";
   85:     String comment="";
   86:     String placeofevent="";
   87:     int fileID=0;
   88:     int fileVer=0;
   89:     String fileName="";
   90:     String mimeType="";
   91:     String md5cs="";
   92:     int size=0;
   93:     String fileLink="";
   94:     Hashtable metaTags = new Hashtable();
   95:     long modified = System.currentTimeMillis();
   96:     boolean downloadAgain = false; 
   97:     static int lastDocID=0;
   98:     public Document() 
   99:     {
  100:       docID=++lastDocID;  
  101:     }
  102:     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)
  103:     {
  104:       this.docID=docID;
  105:       this.ver=ver;
  106:       this.title=title;
  107:       this.locator=locator;
  108:       this.comment=comment;
  109:       this.placeofevent=placeofevent;
  110:       this.fileID=fileID;
  111:       this.fileVer=fileVer;
  112:       this.fileName=fileName;
  113:       this.mimeType=mimeType;
  114:       this.md5cs=md5cs;
  115:       this.size=size;
  116:       this.fileLink=fileLink;
  117:     }
  118:     public void addData(String key,String value)
  119:     {
  120:       //System.out.println(key+" "+value);
  121:       // known tags
  122:       if(key.equals("docID"))
  123:       docID = Integer.parseInt(value);
  124:       else if(key.equals("ver"))
  125:       ver = Integer.parseInt(value);
  126:       else if(key.equals("title"))
  127:       {
  128:         title=value;
  129:         metaTags.put(key,value);
  130:       }
  131:       else if(key.equals("type"))
  132:       type=value;
  133:       else if(key.equals("locator")||key.equals("locater")) // wrong Typing in interface
  134:       {
  135:         locator=value;
  136:         // temporarly because of typing error
  137:         metaTags.put("locator",value);
  138:       }
  139:        else if(key.equals("comment"))
  140:       {
  141:         comment=value;
  142:         metaTags.put(key,value);
  143:       }
  144:       else if(key.equals("placeofevent"))
  145:       {
  146:         placeofevent=value;
  147:         metaTags.put(key,value);
  148:       }
  149:       else if(key.equals("fileID"))
  150:       fileID = Integer.parseInt(value);
  151:       else if(key.equals("fileVer"))
  152:       fileVer = Integer.parseInt(value);
  153:       else if(key.equals("filename"))
  154:       fileName=value;
  155:       else if(key.equals("mimetype"))
  156:       mimeType=value;
  157:       else if(key.equals("md5cs"))
  158:       md5cs=value;
  159:         else if(key.equals("size"))
  160:       size=Integer.parseInt(value);
  161:       else if(key.equals("filelink"))
  162:       fileLink=value; 
  163:     else if(key.equals("lastmodified"))
  164:     {
  165:       modified = Long.parseLong(value);
  166:     }
  167:     // end of known tags
  168:       else
  169:       metaTags.put(key,value);
  170:     //if(key.equals("docaffs")) System.out.println(value);
  171:     }
  172:     public void removeData(String key)
  173:     {
  174:       metaTags.remove(key);
  175:     }
  176:     public void exportToXML(BufferedWriter buffr) throws Exception
  177:     {
  178:       buffr.write("  <doc id = \""+docID+"\" ver = \""+ver+"\">\n");
  179:       buffr.write("    <type>"+type+"</type>\n");
  180: 
  181:       Enumeration en = metaTags.keys();
  182:       while(en.hasMoreElements())
  183:       {
  184:         String key=(String)en.nextElement();
  185:         buffr.write("   <"+key+">");
  186:         buffr.write((String)metaTags.get(key));
  187:         buffr.write("</"+key+">\n");
  188:        
  189:       }
  190:       buffr.write("   <file id = \""+fileID+"\" ver = \""+fileVer+"\">\n");
  191:       buffr.write("     <filename>"+fileName+"</filename>\n");
  192:       buffr.write("     <mimetype>"+mimeType+"</mimetype>\n");
  193:       buffr.write("     <md5cs>"+md5cs+"</md5cs>\n");
  194:       buffr.write("     <size>"+size+"</size>\n");
  195:       buffr.write("     <filelink>"+fileLink+"</filelink>\n");  
  196:       buffr.write("     <lastmodified>"+modified+"</lastmodified>\n");
  197:       buffr.write("   </file>\n");
  198:       buffr.write("  </doc>\n"); 
  199:     }
  200:     public String toString() {
  201:      return "Document "+docID+" "+size;
  202:     }
  203:     
  204:   } 
  205:   static class Genre 
  206:   {
  207:  
  208:     static boolean debug=false; 
  209:     Integer id; 
  210:     String label=""; 
  211:     String name="";
  212:     String definition="";
  213:     public Genre()  {}
  214:     public String toString() 
  215:     {
  216:       if(debug)
  217:       return id+"\n"+label+"\n"+name+"\n"+definition;
  218:       else return id+"  "+label;
  219:     }
  220:     public void addData(String key,String value)
  221:     {
  222:       //System.out.println(key+" "+value);
  223:       // known tags
  224:       if(key.equals("label"))
  225:       label = value;
  226:       else if(key.equals("name"))
  227:       name = value;
  228:       else if(key.equals("definition"))
  229:         definition=value;
  230:     }
  231:   }
  232: }

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