home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / Share / Java / JDesignerPro / Jdp3_0.exe / data1.cab / Program_Files / JDPIndexHelpText.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-09  |  4.5 KB  |  201 lines

  1. import java.io.BufferedReader;
  2. import java.io.File;
  3. import java.io.FileReader;
  4. import java.io.IOException;
  5. import java.io.StreamTokenizer;
  6. import java.util.Date;
  7. import java.util.Enumeration;
  8. import java.util.Hashtable;
  9. import java.util.Vector;
  10.  
  11. public class JDPIndexHelpText {
  12.    int docNumber = 10;
  13.    Hashtable docNums;
  14.    Hashtable docTitles;
  15.    JDPJagg jaggSQL;
  16.    Hashtable keyWords;
  17.    JDPSubsystemMgr manager;
  18.    JDPJob thisJob;
  19.    JDPUtils utils;
  20.  
  21.    public void parseKeywords(String var1) {
  22.       try {
  23.          FileReader var2 = new FileReader(this.manager.JDPDirectory + "Docs" + File.separator + var1);
  24.          BufferedReader var3 = new BufferedReader(var2);
  25.          int var4 = this.saveDocTitle(var1);
  26.          StreamTokenizer var5 = new StreamTokenizer(var3);
  27.          var5.resetSyntax();
  28.          var5.wordChars(65, 90);
  29.          var5.wordChars(97, 122);
  30.          boolean var7 = false;
  31.          boolean var8 = false;
  32.          String var9 = "";
  33.  
  34.          int var6;
  35.          while((var6 = var5.nextToken()) != -1) {
  36.             if (var6 == 60) {
  37.                var7 = true;
  38.             } else if (var6 == 62) {
  39.                var7 = false;
  40.             } else if (var6 == -3) {
  41.                if (!var7) {
  42.                   if (var8) {
  43.                      var9 = var9 + var5.sval;
  44.                   }
  45.  
  46.                   this.addKeyword(var5.sval.toLowerCase(), var4);
  47.                } else if (var5.sval.toLowerCase().equals("title")) {
  48.                   if (!var8) {
  49.                      var8 = true;
  50.                   } else {
  51.                      var8 = false;
  52.                   }
  53.                }
  54.             } else if (var8 && !var7) {
  55.                byte[] var10 = new byte[]{(byte)var6};
  56.                var9 = var9 + new String(var10);
  57.             }
  58.          }
  59.  
  60.          if (!var9.equals("")) {
  61.             this.docTitles.put(var1, var9);
  62.          }
  63.  
  64.          var3.close();
  65.       } catch (IOException var11) {
  66.          this.thisJob.logException(var11);
  67.       }
  68.  
  69.    }
  70.  
  71.    public JDPIndexHelpText(JDPSubsystemMgr var1, JDPJob var2) {
  72.       this.manager = var1;
  73.       this.thisJob = var2;
  74.       var2.setInstance(this);
  75.       this.jaggSQL = new JDPJagg(var1.JDPJaggPath);
  76.       var2.appendJobLog("Job started on " + (new Date()).toString());
  77.  
  78.       try {
  79.          this.utils = var1.utils;
  80.          this.ReadHelpDocs();
  81.       } catch (Exception var4) {
  82.          var2.logException(var4);
  83.       }
  84.  
  85.       var2.appendJobLog("Job completed on " + (new Date()).toString());
  86.    }
  87.  
  88.    public void addKeyword(String var1, int var2) {
  89.       Hashtable var3 = (Hashtable)this.keyWords.get(var1);
  90.       if (var3 == null) {
  91.          var3 = new Hashtable();
  92.          this.keyWords.put(var1, var3);
  93.       }
  94.  
  95.       if (var3.get(Integer.toString(var2)) == null) {
  96.          var3.put(Integer.toString(var2), "");
  97.       }
  98.  
  99.    }
  100.  
  101.    public void saveIndexToDB() {
  102.       Object var2 = null;
  103.       Vector var6 = new Vector();
  104.       int var7 = 0;
  105.       this.thisJob.appendJobLog("Saving key index information...");
  106.       Enumeration var8 = this.keyWords.keys();
  107.  
  108.       while(var8.hasMoreElements()) {
  109.          String var1 = (String)var8.nextElement();
  110.          Hashtable var4 = (Hashtable)this.keyWords.get(var1);
  111.          Enumeration var9 = var4.keys();
  112.          String var3 = "";
  113.          var7 = 0;
  114.  
  115.          byte[] var5;
  116.          for(var5 = new byte[200]; var9.hasMoreElements() && var7 < 200; var5[var7++] = (byte)Integer.parseInt(var12)) {
  117.             var12 = (String)var9.nextElement();
  118.          }
  119.  
  120.          if (var7 < 200) {
  121.             String[] var10 = new String[]{var1, new String(var5, 0, var7)};
  122.             var6.addElement(var10);
  123.          }
  124.       }
  125.  
  126.       Vector var14 = new Vector();
  127.       this.jaggSQL = this.manager.setupJaggInstanceFromSystem(this.thisJob.getJDPSystem());
  128.       this.jaggSQL.execSQL("DROP TABLE JDPKeyWd", var14);
  129.       this.jaggSQL.execSQL("CREATE TABLE JDPKeyWd (keyword char(30), docindex char(200))", var14);
  130.       this.jaggSQL.insertData = var6;
  131.       this.jaggSQL.insertType = new int[2];
  132.       this.jaggSQL.insertType[0] = 1;
  133.       this.jaggSQL.insertType[1] = 1;
  134.       this.jaggSQL.setFCTN("BINS");
  135.       String var15 = "INSERT INTO JDPKeyWd (keyword, docindex) VALUES(#?,#?)";
  136.       this.jaggSQL.execSQL(var15, var14);
  137.       this.jaggSQL.setFCTN("");
  138.       var15 = "CREATE UNIQUE INDEX JDPKeyIx ON JDPKeyWd (keyword)";
  139.       this.jaggSQL.execSQL(var15, var14);
  140.    }
  141.  
  142.    public void saveDocNamesToDB() {
  143.       Vector var4 = new Vector();
  144.       this.thisJob.appendJobLog("Saving list of documents...");
  145.       Enumeration var5 = this.docNums.keys();
  146.  
  147.       while(var5.hasMoreElements()) {
  148.          String var1 = (String)var5.nextElement();
  149.          String var3 = (String)this.docTitles.get(var1);
  150.          String var2 = (String)this.docNums.get(var1);
  151.          String[] var6 = new String[]{var2, var1, var3};
  152.          var4.addElement(var6);
  153.       }
  154.  
  155.       Vector var9 = new Vector();
  156.       this.jaggSQL.setDSN(this.manager.JDPJaggDSN);
  157.       this.jaggSQL.execSQL("DROP TABLE JDPDocIx", var9);
  158.       this.jaggSQL.execSQL("CREATE TABLE JDPDocIx (docindex int, filename char(50), title char(200))", var9);
  159.       this.jaggSQL.insertData = var4;
  160.       this.jaggSQL.insertType = new int[3];
  161.       this.jaggSQL.insertType[0] = 4;
  162.       this.jaggSQL.insertType[1] = 1;
  163.       this.jaggSQL.insertType[2] = 1;
  164.       this.jaggSQL.setFCTN("BINS");
  165.       String var7 = "INSERT INTO JDPDocIx (docindex, filename, title) VALUES(#?,#?,#?)";
  166.       this.jaggSQL.execSQL(var7, var9);
  167.       this.jaggSQL.setFCTN("");
  168.       var7 = "CREATE UNIQUE INDEX JDPDocI1 ON JDPDocIx (docindex)";
  169.       this.jaggSQL.execSQL(var7, var9);
  170.    }
  171.  
  172.    public void ReadHelpDocs() {
  173.       JDPUtils var1 = this.manager.utils;
  174.       String[] var2 = var1.getFileNames(this.manager.JDPDirectory + "Docs");
  175.       this.keyWords = new Hashtable();
  176.       this.docNums = new Hashtable();
  177.       this.docTitles = new Hashtable();
  178.       this.thisJob.appendJobLog("Reading " + Integer.toString(var2.length) + " files...");
  179.  
  180.       for(int var3 = 0; var3 < var2.length; ++var3) {
  181.          if (var2[var3].endsWith(".html") || var2[var3].endsWith(".htm")) {
  182.             this.parseKeywords(var2[var3]);
  183.          }
  184.       }
  185.  
  186.       this.saveIndexToDB();
  187.       this.saveDocNamesToDB();
  188.    }
  189.  
  190.    public int saveDocTitle(String var1) {
  191.       ++this.docNumber;
  192.       if (this.docNumber == 31 || this.docNumber == 39 || this.docNumber == 124) {
  193.          ++this.docNumber;
  194.       }
  195.  
  196.       this.docNums.put(var1, Integer.toString(this.docNumber));
  197.       this.docTitles.put(var1, var1);
  198.       return this.docNumber;
  199.    }
  200. }
  201.