home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 October / PCO1097.ISO / FilesBBS / OS2 / NETREXX.ARJ / NETREXX.ZIP / NetRexx / netrexx / lang / RexxTrace.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-08-03  |  4.4 KB  |  232 lines

  1. package netrexx.lang;
  2.  
  3. import java.io.PrintStream;
  4.  
  5. public final class RexxTrace {
  6.    public static final int OFF = 0;
  7.    public static final int VAR = 1;
  8.    public static final int METHODS = 2;
  9.    public static final int ALL = 3;
  10.    public static final int RESULTS = 4;
  11.    public static final int TERMS = 5;
  12.    public static final int OPS = 6;
  13.    private static final Rexx levelwords = Rexx.toRexx("off var methods all results terms operations");
  14.    private static final String nulltrace = "[null]";
  15.    private int level;
  16.    private int width;
  17.    private int lastline;
  18.    private PrintStream tracestream;
  19.    private static final Rexx $$4 = Rexx.toRexx("*-*");
  20.    // $FF: renamed from: $0 java.lang.String
  21.    private static final String field_0 = "RexxTrace.nrx";
  22.  
  23.    public RexxTrace(int var1) {
  24.       this(var1, System.err);
  25.    }
  26.  
  27.    public RexxTrace(int var1, PrintStream var2) {
  28.       this.level = 0;
  29.       this.lastline = 0;
  30.       this.width = String.valueOf(var1).length();
  31.       this.tracestream = var2;
  32.    }
  33.  
  34.    public RexxTrace(RexxTrace var1) {
  35.       this(0);
  36.       this.level = var1.level;
  37.       this.width = var1.width;
  38.       this.lastline = var1.lastline;
  39.       this.tracestream = var1.tracestream;
  40.    }
  41.  
  42.    public Rexx levelword() {
  43.       return levelwords.word(new Rexx(this.level + 1));
  44.    }
  45.  
  46.    public void newlevel(int var1) {
  47.       this.level = var1;
  48.       if (this.level == 0) {
  49.          this.lastline = 0;
  50.       }
  51.  
  52.    }
  53.  
  54.    public void traceclause(int var1, String[] var2) {
  55.       this.traceclause(var1, var2, 3);
  56.    }
  57.  
  58.    public void traceclause(int var1, String[] var2, int var3) {
  59.       Object var4 = null;
  60.       boolean var5 = false;
  61.       if (this.level >= var3) {
  62.          Rexx var7;
  63.          if (this.lastline == var1) {
  64.             var7 = (new Rexx(' ')).copies(new Rexx(this.width));
  65.          } else {
  66.             var7 = (new Rexx(var1)).right(new Rexx(this.width));
  67.             this.lastline = var1 + var2.length - 1;
  68.          }
  69.  
  70.          var7 = var7.OpCcblank((RexxSet)null, Rexx.toRexx("*=*"));
  71.          int var6 = var2.length - 1;
  72.  
  73.          for(int var9 = 0; var9 <= var6; ++var9) {
  74.             this.tracestream.println((new Rexx(' ')).OpCc((RexxSet)null, var7).OpCcblank((RexxSet)null, Rexx.toRexx(var2[var9])));
  75.             var7 = (new Rexx(var1 + var9 + 1)).right(new Rexx(this.width)).OpCcblank((RexxSet)null, $$4);
  76.          }
  77.  
  78.       }
  79.    }
  80.  
  81.    private void tracedata(int var1, Rexx var2, char var3, String var4) {
  82.       Object var5 = null;
  83.       Object var6 = null;
  84.       boolean var7 = false;
  85.       Rexx var9;
  86.       if (this.lastline == var1) {
  87.          var9 = (new Rexx(' ')).copies(new Rexx(this.width));
  88.       } else {
  89.          var9 = (new Rexx(var1)).right(new Rexx(this.width));
  90.          this.lastline = var1;
  91.       }
  92.  
  93.       var9 = var9.OpCcblank((RexxSet)null, new Rexx('>')).OpCc((RexxSet)null, new Rexx(var3)).OpCc((RexxSet)null, new Rexx('>'));
  94.       if (!var4.equals("")) {
  95.          var9 = var9.OpCcblank((RexxSet)null, Rexx.toRexx(var4));
  96.       }
  97.  
  98.       if (var2 == null) {
  99.          this.tracestream.println((new Rexx(' ')).OpCc((RexxSet)null, var9).OpCcblank((RexxSet)null, Rexx.toRexx("[null]")));
  100.       } else {
  101.          char[] var11 = Rexx.tochararray(var2);
  102.          int var8 = var11.length - 1;
  103.  
  104.          for(int var12 = 0; var12 <= var8; ++var12) {
  105.             if (var11[var12] < ' ') {
  106.                if (var11[var12] == '\t') {
  107.                   var11[var12] = ' ';
  108.                } else {
  109.                   var11[var12] = '?';
  110.                }
  111.             }
  112.          }
  113.  
  114.          this.tracestream.println((new Rexx(' ')).OpCc((RexxSet)null, var9).OpCcblank((RexxSet)null, new Rexx('"')).OpCc((RexxSet)null, Rexx.toRexx(var11)).OpCc((RexxSet)null, new Rexx('"')));
  115.       }
  116.    }
  117.  
  118.    public char tracechar(int var1, char var2, char var3, int var4, String var5) {
  119.       if (this.level >= var4) {
  120.          this.tracedata(var1, new Rexx(var2), var3, var5);
  121.       }
  122.  
  123.       return var2;
  124.    }
  125.  
  126.    public boolean traceboolean(int var1, boolean var2, char var3, int var4, String var5) {
  127.       if (this.level >= var4) {
  128.          this.tracedata(var1, new Rexx(var2), var3, var5);
  129.       }
  130.  
  131.       return var2;
  132.    }
  133.  
  134.    public byte tracebyte(int var1, byte var2, char var3, int var4, String var5) {
  135.       if (this.level >= var4) {
  136.          this.tracedata(var1, new Rexx(var2), var3, var5);
  137.       }
  138.  
  139.       return var2;
  140.    }
  141.  
  142.    public short traceshort(int var1, short var2, char var3, int var4, String var5) {
  143.       if (this.level >= var4) {
  144.          this.tracedata(var1, new Rexx(var2), var3, var5);
  145.       }
  146.  
  147.       return var2;
  148.    }
  149.  
  150.    public int traceint(int var1, int var2, char var3, int var4, String var5) {
  151.       if (this.level >= var4) {
  152.          this.tracedata(var1, new Rexx(var2), var3, var5);
  153.       }
  154.  
  155.       return var2;
  156.    }
  157.  
  158.    public long tracelong(int var1, long var2, char var4, int var5, String var6) {
  159.       if (this.level >= var5) {
  160.          this.tracedata(var1, new Rexx(var2), var4, var6);
  161.       }
  162.  
  163.       return var2;
  164.    }
  165.  
  166.    public float tracefloat(int var1, float var2, char var3, int var4, String var5) {
  167.       if (this.level >= var4) {
  168.          this.tracedata(var1, new Rexx(var2), var3, var5);
  169.       }
  170.  
  171.       return var2;
  172.    }
  173.  
  174.    public double tracedouble(int var1, double var2, char var4, int var5, String var6) {
  175.       if (this.level >= var5) {
  176.          this.tracedata(var1, new Rexx(var2), var4, var6);
  177.       }
  178.  
  179.       return var2;
  180.    }
  181.  
  182.    public Rexx traceRexx(int var1, Rexx var2, char var3, int var4, String var5) {
  183.       if (this.level >= var4) {
  184.          this.tracedata(var1, var2, var3, var5);
  185.       }
  186.  
  187.       return var2;
  188.    }
  189.  
  190.    public String traceString(int var1, String var2, char var3, int var4, String var5) {
  191.       if (this.level < var4) {
  192.          return var2;
  193.       } else {
  194.          if (var2 == null) {
  195.             this.tracedata(var1, (Rexx)null, var3, var5);
  196.          } else {
  197.             this.tracedata(var1, Rexx.toRexx(var2), var3, var5);
  198.          }
  199.  
  200.          return var2;
  201.       }
  202.    }
  203.  
  204.    public char[] tracechararray(int var1, char[] var2, char var3, int var4, String var5) {
  205.       if (this.level < var4) {
  206.          return var2;
  207.       } else {
  208.          if (var2 == null) {
  209.             this.tracedata(var1, (Rexx)null, var3, var5);
  210.          } else {
  211.             this.tracedata(var1, Rexx.toRexx(var2), var3, var5);
  212.          }
  213.  
  214.          return var2;
  215.       }
  216.    }
  217.  
  218.    public Object traceObject(int var1, Object var2, char var3, int var4, String var5) {
  219.       if (this.level < var4) {
  220.          return var2;
  221.       } else {
  222.          if (var2 == null) {
  223.             this.tracedata(var1, (Rexx)null, var3, var5);
  224.          } else {
  225.             this.tracedata(var1, Rexx.toRexx(var2.toString()), var3, var5);
  226.          }
  227.  
  228.          return var2;
  229.       }
  230.    }
  231. }
  232.