home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 27 / CDROM27.iso / share / wnt / jig / data1.cab / Program_Executable_Files / lib / jig.jar / DebugProcessThread.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-08-19  |  2.8 KB  |  122 lines

  1. import java.io.DataInputStream;
  2. import java.io.IOException;
  3.  
  4. class DebugProcessThread extends Thread {
  5.    private DebugGUI output;
  6.    private DataInputStream dis;
  7.  
  8.    public DebugProcessThread(String var1, DebugGUI var2, DataInputStream var3) {
  9.       super(var1);
  10.       this.output = var2;
  11.       this.dis = var3;
  12.    }
  13.  
  14.    private void output(int var1) {
  15.       char[] var2 = new char[]{(char)var1, '\u0000'};
  16.       String var3 = new String(var2);
  17.       this.output.output(var3);
  18.    }
  19.  
  20.    public void run() {
  21.       this.command(((Thread)this).getName());
  22.    }
  23.  
  24.    private boolean command(String var1) {
  25.       String var2;
  26.       try {
  27.          while((var2 = this.dis.readLine()) != null) {
  28.             if (this.hasPrompt(var2)) {
  29.                var2 = var2.substring(var2.indexOf(93) + 2);
  30.             }
  31.  
  32.             if ((var2.indexOf(49) == 0 || var2.indexOf(50) == 0 || var2.indexOf(51) == 0 || var2.indexOf(52) == 0 || var2.indexOf(53) == 0 || var2.indexOf(54) == 0 || var2.indexOf(55) == 0 || var2.indexOf(56) == 0 || var2.indexOf(57) == 0) && !this.isThread(var2)) {
  33.                this.output.listing(var2 + "\n");
  34.                this.output.sourceStart(new Integer(var2.substring(0, var2.indexOf("\t", 0)).trim()));
  35.             } else if (var2.startsWith("    ")) {
  36.                this.output.output(var2 + "\n");
  37.             } else if (var2.startsWith("  ") && var2.indexOf(91) != 2) {
  38.                this.output.varList(var2 + "\n");
  39.                if (var2.trim().startsWith("this = ")) {
  40.                   int var3 = var2.indexOf(91);
  41.                   if (var3 == -1) {
  42.                      var3 = var2.indexOf(64);
  43.                   }
  44.  
  45.                   if (var3 == -1) {
  46.                      var3 = var2.indexOf(44);
  47.                   }
  48.  
  49.                   if (var3 == -1) {
  50.                      var3 = var2.indexOf(32);
  51.                   }
  52.  
  53.                   this.output.setClassName(var2.substring(9, var3));
  54.                }
  55.             } else if (!var2.startsWith("Local variables:") && !var2.startsWith("Method arguments:")) {
  56.                if (var2.startsWith("Breakpoint hit:")) {
  57.                   this.output.doList();
  58.                   this.output.doVariables();
  59.                } else if (!var2.startsWith("Breakpoint set at") && !var2.startsWith("Breakpoint set in")) {
  60.                   if (var2.startsWith("Initializing jdb...")) {
  61.                      this.output.clearAllBreakpoints(false);
  62.                      this.output.output(var2 + "\n");
  63.                   } else {
  64.                      this.output.output(var2 + "\n");
  65.                   }
  66.                } else {
  67.                   this.output.addBreakPoint(var2.substring(var2.indexOf("set") + 7));
  68.                   this.output.updateBreakList();
  69.                }
  70.             }
  71.          }
  72.       } catch (IOException var4) {
  73.          System.out.println(BrowserOptions.messages.getString("IOExceptio"));
  74.       }
  75.  
  76.       return true;
  77.    }
  78.  
  79.    private boolean isThread(String var1) {
  80.       byte[] var2 = var1.getBytes();
  81.  
  82.       int var3;
  83.       for(var3 = 0; var3 < var2.length && Character.isDigit((char)var2[var3]); ++var3) {
  84.       }
  85.  
  86.       return var2[var3] == 46;
  87.    }
  88.  
  89.    boolean hasPrompt(String var1) {
  90.       char[] var2 = var1.toCharArray();
  91.       if (var1.startsWith("thread ")) {
  92.          var1 = var1.substring(7);
  93.       }
  94.  
  95.       boolean var3 = false;
  96.       boolean var4 = false;
  97.       boolean var5 = false;
  98.  
  99.       for(int var6 = 0; var6 < var2.length; ++var6) {
  100.          if (Character.isDigit(var2[var6]) && var5) {
  101.             var4 = true;
  102.          } else if (Character.isLetterOrDigit(var2[var6])) {
  103.             var3 = true;
  104.          } else if (var2[var6] != '.' && var2[var6] != '-') {
  105.             if (var2[var6] == '[') {
  106.                var5 = true;
  107.             } else {
  108.                if (var2[var6] != ']') {
  109.                   return false;
  110.                }
  111.  
  112.                if (var3 && var4 && var5) {
  113.                   return true;
  114.                }
  115.             }
  116.          }
  117.       }
  118.  
  119.       return false;
  120.    }
  121. }
  122.