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