home *** CD-ROM | disk | FTP | other *** search
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileReader;
- import java.io.IOException;
- import java.io.StreamTokenizer;
- import java.util.Date;
- import java.util.Enumeration;
- import java.util.Hashtable;
- import java.util.Vector;
-
- public class JDPIndexHelpText {
- int docNumber = 10;
- Hashtable docNums;
- Hashtable docTitles;
- JDPJagg jaggSQL;
- Hashtable keyWords;
- JDPSubsystemMgr manager;
- JDPJob thisJob;
- JDPUtils utils;
-
- public void parseKeywords(String var1) {
- try {
- FileReader var2 = new FileReader(this.manager.JDPDirectory + "Docs" + File.separator + var1);
- BufferedReader var3 = new BufferedReader(var2);
- int var4 = this.saveDocTitle(var1);
- StreamTokenizer var5 = new StreamTokenizer(var3);
- var5.resetSyntax();
- var5.wordChars(65, 90);
- var5.wordChars(97, 122);
- boolean var7 = false;
- boolean var8 = false;
- String var9 = "";
-
- int var6;
- while((var6 = var5.nextToken()) != -1) {
- if (var6 == 60) {
- var7 = true;
- } else if (var6 == 62) {
- var7 = false;
- } else if (var6 == -3) {
- if (!var7) {
- if (var8) {
- var9 = var9 + var5.sval;
- }
-
- this.addKeyword(var5.sval.toLowerCase(), var4);
- } else if (var5.sval.toLowerCase().equals("title")) {
- if (!var8) {
- var8 = true;
- } else {
- var8 = false;
- }
- }
- } else if (var8 && !var7) {
- byte[] var10 = new byte[]{(byte)var6};
- var9 = var9 + new String(var10);
- }
- }
-
- if (!var9.equals("")) {
- this.docTitles.put(var1, var9);
- }
-
- var3.close();
- } catch (IOException var11) {
- this.thisJob.logException(var11);
- }
-
- }
-
- public JDPIndexHelpText(JDPSubsystemMgr var1, JDPJob var2) {
- this.manager = var1;
- this.thisJob = var2;
- var2.setInstance(this);
- this.jaggSQL = new JDPJagg(var1.JDPJaggPath);
- var2.appendJobLog("Job started on " + (new Date()).toString());
-
- try {
- this.utils = var1.utils;
- this.ReadHelpDocs();
- } catch (Exception var4) {
- var2.logException(var4);
- }
-
- var2.appendJobLog("Job completed on " + (new Date()).toString());
- }
-
- public void addKeyword(String var1, int var2) {
- Hashtable var3 = (Hashtable)this.keyWords.get(var1);
- if (var3 == null) {
- var3 = new Hashtable();
- this.keyWords.put(var1, var3);
- }
-
- if (var3.get(Integer.toString(var2)) == null) {
- var3.put(Integer.toString(var2), "");
- }
-
- }
-
- public void saveIndexToDB() {
- Object var2 = null;
- Vector var6 = new Vector();
- int var7 = 0;
- this.thisJob.appendJobLog("Saving key index information...");
- Enumeration var8 = this.keyWords.keys();
-
- while(var8.hasMoreElements()) {
- String var1 = (String)var8.nextElement();
- Hashtable var4 = (Hashtable)this.keyWords.get(var1);
- Enumeration var9 = var4.keys();
- String var3 = "";
- var7 = 0;
-
- byte[] var5;
- for(var5 = new byte[200]; var9.hasMoreElements() && var7 < 200; var5[var7++] = (byte)Integer.parseInt(var12)) {
- var12 = (String)var9.nextElement();
- }
-
- if (var7 < 200) {
- String[] var10 = new String[]{var1, new String(var5, 0, var7)};
- var6.addElement(var10);
- }
- }
-
- Vector var14 = new Vector();
- this.jaggSQL = this.manager.setupJaggInstanceFromSystem(this.thisJob.getJDPSystem());
- this.jaggSQL.execSQL("DROP TABLE JDPKeyWd", var14);
- this.jaggSQL.execSQL("CREATE TABLE JDPKeyWd (keyword char(30), docindex char(200))", var14);
- this.jaggSQL.insertData = var6;
- this.jaggSQL.insertType = new int[2];
- this.jaggSQL.insertType[0] = 1;
- this.jaggSQL.insertType[1] = 1;
- this.jaggSQL.setFCTN("BINS");
- String var15 = "INSERT INTO JDPKeyWd (keyword, docindex) VALUES(#?,#?)";
- this.jaggSQL.execSQL(var15, var14);
- this.jaggSQL.setFCTN("");
- var15 = "CREATE UNIQUE INDEX JDPKeyIx ON JDPKeyWd (keyword)";
- this.jaggSQL.execSQL(var15, var14);
- }
-
- public void saveDocNamesToDB() {
- Vector var4 = new Vector();
- this.thisJob.appendJobLog("Saving list of documents...");
- Enumeration var5 = this.docNums.keys();
-
- while(var5.hasMoreElements()) {
- String var1 = (String)var5.nextElement();
- String var3 = (String)this.docTitles.get(var1);
- String var2 = (String)this.docNums.get(var1);
- String[] var6 = new String[]{var2, var1, var3};
- var4.addElement(var6);
- }
-
- Vector var9 = new Vector();
- this.jaggSQL.setDSN(this.manager.JDPJaggDSN);
- this.jaggSQL.execSQL("DROP TABLE JDPDocIx", var9);
- this.jaggSQL.execSQL("CREATE TABLE JDPDocIx (docindex int, filename char(50), title char(200))", var9);
- this.jaggSQL.insertData = var4;
- this.jaggSQL.insertType = new int[3];
- this.jaggSQL.insertType[0] = 4;
- this.jaggSQL.insertType[1] = 1;
- this.jaggSQL.insertType[2] = 1;
- this.jaggSQL.setFCTN("BINS");
- String var7 = "INSERT INTO JDPDocIx (docindex, filename, title) VALUES(#?,#?,#?)";
- this.jaggSQL.execSQL(var7, var9);
- this.jaggSQL.setFCTN("");
- var7 = "CREATE UNIQUE INDEX JDPDocI1 ON JDPDocIx (docindex)";
- this.jaggSQL.execSQL(var7, var9);
- }
-
- public void ReadHelpDocs() {
- JDPUtils var1 = this.manager.utils;
- String[] var2 = var1.getFileNames(this.manager.JDPDirectory + "Docs");
- this.keyWords = new Hashtable();
- this.docNums = new Hashtable();
- this.docTitles = new Hashtable();
- this.thisJob.appendJobLog("Reading " + Integer.toString(var2.length) + " files...");
-
- for(int var3 = 0; var3 < var2.length; ++var3) {
- if (var2[var3].endsWith(".html") || var2[var3].endsWith(".htm")) {
- this.parseKeywords(var2[var3]);
- }
- }
-
- this.saveIndexToDB();
- this.saveDocNamesToDB();
- }
-
- public int saveDocTitle(String var1) {
- ++this.docNumber;
- if (this.docNumber == 31 || this.docNumber == 39 || this.docNumber == 124) {
- ++this.docNumber;
- }
-
- this.docNums.put(var1, Integer.toString(this.docNumber));
- this.docTitles.put(var1, var1);
- return this.docNumber;
- }
- }
-