home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 December / PCO1297.ISO / FilesBBS / FREI / JAVA3.ARJ / JAVA3.ZIP / CLASS / SearchEngineGenerator.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-06  |  3.8 KB  |  127 lines

  1. import java.io.FileInputStream;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.io.OutputStream;
  5. import java.util.Hashtable;
  6. import java.util.Properties;
  7. import java.util.zip.Deflater;
  8. import java.util.zip.DeflaterOutputStream;
  9. import java.util.zip.InflaterInputStream;
  10.  
  11. class SearchEngineGenerator {
  12.    Properties tab = new Properties();
  13.    Hashtable docs = new Hashtable();
  14.    Properties exclude = new Properties();
  15.    int nextDoc = 0;
  16.    static final String encoding = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  17.    static final int enclen = 62;
  18.  
  19.    SearchEngineGenerator() {
  20.       try {
  21.          FileInputStream var1 = new FileInputStream("exclude.dat");
  22.          this.exclude.load(var1);
  23.          ((InputStream)var1).close();
  24.       } catch (IOException var2) {
  25.          System.err.println("Ausschlussliste exclude.dat konnte nicht geladen werden");
  26.       }
  27.    }
  28.  
  29.    void clear() {
  30.       this.tab.clear();
  31.       this.docs.clear();
  32.       this.nextDoc = 0;
  33.    }
  34.  
  35.    void save(OutputStream var1) throws IOException {
  36.       this.tab.save(var1, "SearchEngine");
  37.       var1.close();
  38.    }
  39.  
  40.    void saveZIP(OutputStream var1) throws IOException {
  41.       this.save(new DeflaterOutputStream(var1, new Deflater(9)));
  42.    }
  43.  
  44.    void load(InputStream var1) throws IOException {
  45.       this.clear();
  46.       this.tab.load(var1);
  47.       var1.close();
  48.  
  49.       while(true) {
  50.          String var2 = this.tab.getProperty("." + IntToString(this.nextDoc));
  51.          if (var2 == null) {
  52.             return;
  53.          }
  54.  
  55.          SearchEngineResult var3 = new SearchEngineResult(var2);
  56.          this.addDocument(var3.document, var3.caption);
  57.       }
  58.    }
  59.  
  60.    void loadZIP(InputStream var1) throws IOException {
  61.       this.load(new InflaterInputStream(var1));
  62.    }
  63.  
  64.    public int getSize() {
  65.       return this.tab.size();
  66.    }
  67.  
  68.    public int getDocs() {
  69.       return this.docs.size();
  70.    }
  71.  
  72.    public String getStatus() {
  73.       return this.getDocs() + " Dokumente/" + this.getSize() + " Woerter";
  74.    }
  75.  
  76.    public int addDocument(String var1, String var2) {
  77.       Integer var3 = (Integer)this.docs.get(var1);
  78.       if (var3 == null) {
  79.          var3 = new Integer(this.nextDoc++);
  80.       }
  81.  
  82.       this.docs.put(var1, var3);
  83.       this.tab.put("." + IntToString(var3), var1 + "," + HTMLcvt.toHTML(var2));
  84.       return var3;
  85.    }
  86.  
  87.    public static char IntToChar(int var0) {
  88.       return "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".charAt(var0);
  89.    }
  90.  
  91.    public static int CharToInt(char var0) {
  92.       return "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".indexOf(var0);
  93.    }
  94.  
  95.    public static int StringToInt(String var0, int var1) {
  96.       return CharToInt(var0.charAt(var1)) * 62 + CharToInt(var0.charAt(var1 + 1));
  97.    }
  98.  
  99.    public static String IntToString(int var0) {
  100.       return "" + IntToChar(var0 / 62) + IntToChar(var0 % 62);
  101.    }
  102.  
  103.    public void addWord(int var1, String var2) {
  104.       if (this.exclude == null || this.exclude.getProperty(var2) == null) {
  105.          if (var2.length() >= 2) {
  106.             String var3 = this.tab.getProperty(var2);
  107.             if (var3 == null) {
  108.                this.tab.put(var2, IntToString(var1));
  109.             } else {
  110.                boolean var4 = false;
  111.  
  112.                for(int var5 = 0; var5 < var3.length(); var5 += 2) {
  113.                   if (var1 == StringToInt(var3, var5)) {
  114.                      var4 = true;
  115.                   }
  116.                }
  117.  
  118.                if (!var4) {
  119.                   this.tab.put(var2, var3 + IntToString(var1));
  120.                }
  121.  
  122.             }
  123.          }
  124.       }
  125.    }
  126. }
  127.