home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VPage / Java.bin / CLASSES.ZIP / sun / tools / debug / RemoteArray.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-07-08  |  3.2 KB  |  146 lines

  1. package sun.tools.debug;
  2.  
  3. public class RemoteArray extends RemoteObject {
  4.    private int size;
  5.  
  6.    RemoteArray(RemoteAgent var1, int var2, RemoteClass var3, int var4) {
  7.       super(var1, 9, var2, var3);
  8.       this.size = var4;
  9.    }
  10.  
  11.    public final int getSize() {
  12.       return this.size;
  13.    }
  14.  
  15.    public String typeName() {
  16.       return new String("array");
  17.    }
  18.  
  19.    public String arrayTypeName(int var1) {
  20.       switch (var1) {
  21.          case 0:
  22.             return new String("boolean");
  23.          case 1:
  24.             return new String("byte");
  25.          case 2:
  26.             return new String("char");
  27.          case 3:
  28.             return new String("short");
  29.          case 4:
  30.             return new String("int");
  31.          case 5:
  32.             return new String("long");
  33.          case 6:
  34.             return new String("float");
  35.          case 7:
  36.             return new String("double");
  37.          case 9:
  38.             return new String("array");
  39.          case 10:
  40.          case 17:
  41.             return new String("Object");
  42.          case 11:
  43.             return new String("void");
  44.          case 16:
  45.             return new String("Class");
  46.          case 18:
  47.             return new String("String");
  48.          case 19:
  49.             return new String("Thread");
  50.          default:
  51.             return new String("unknown type");
  52.       }
  53.    }
  54.  
  55.    public final int getElementType() throws Exception {
  56.       String var1 = ((RemoteObject)this).getClazz().getName();
  57.       switch (var1.charAt(1)) {
  58.          case 'B':
  59.             return 1;
  60.          case 'C':
  61.             return 2;
  62.          case 'D':
  63.             return 7;
  64.          case 'F':
  65.             return 6;
  66.          case 'I':
  67.             return 4;
  68.          case 'J':
  69.             return 5;
  70.          case 'L':
  71.             return 10;
  72.          case 'S':
  73.             return 3;
  74.          case 'V':
  75.             return 11;
  76.          case 'Z':
  77.             return 0;
  78.          case '[':
  79.             return 9;
  80.          default:
  81.             super.agent.error("Invalid array type: '" + (new Character(var1.charAt(1))).toString() + "'");
  82.             return -1;
  83.       }
  84.    }
  85.  
  86.    public final RemoteValue getElement(int var1) throws Exception {
  87.       if (var1 >= 0 && var1 < this.size) {
  88.          RemoteValue[] var2 = super.agent.getElements(super.id, this.getElementType(), var1, var1);
  89.          return var2[0];
  90.       } else {
  91.          throw new ArrayIndexOutOfBoundsException(var1);
  92.       }
  93.    }
  94.  
  95.    public final RemoteValue[] getElements() throws Exception {
  96.       return super.agent.getElements(super.id, this.getElementType(), 0, this.size - 1);
  97.    }
  98.  
  99.    public final RemoteValue[] getElements(int var1, int var2) throws Exception {
  100.       if (var1 >= 0 && var1 < this.size) {
  101.          if (var2 >= 0 && var2 < this.size && var1 <= var2) {
  102.             return super.agent.getElements(super.id, this.getElementType(), var1, var2);
  103.          } else {
  104.             throw new ArrayIndexOutOfBoundsException(var2);
  105.          }
  106.       } else {
  107.          throw new ArrayIndexOutOfBoundsException(var1);
  108.       }
  109.    }
  110.  
  111.    public String description() {
  112.       return this.toString();
  113.    }
  114.  
  115.    public String toString() {
  116.       try {
  117.          String var1 = new String();
  118.          if (this.size > 0) {
  119.             if (this.getElementType() == 2) {
  120.                var1 = var1.concat("\"");
  121.                RemoteValue[] var2 = this.getElements();
  122.  
  123.                for(int var3 = 0; var3 < this.size; ++var3) {
  124.                   var1 = var1.concat(var2[var3].toString());
  125.                }
  126.  
  127.                var1 = var1.concat("\"");
  128.             } else {
  129.                int var8 = this.size < 3 ? this.size : 3;
  130.                RemoteValue[] var9 = this.getElements(0, var8 - 1);
  131.                var1 = "{ ";
  132.  
  133.                for(int var4 = 0; var4 < var8; ++var4) {
  134.                   var1 = var1.concat(var9[var4] == null ? "null" : var9[var4].toString());
  135.                   var1 = var1.concat(var4 < var8 - 1 ? ", " : (var8 < this.size ? ", ... }" : " }"));
  136.                }
  137.             }
  138.          }
  139.  
  140.          return var1;
  141.       } catch (Exception var5) {
  142.          return "<communication error>";
  143.       }
  144.    }
  145. }
  146.