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 / java / BinaryAttribute.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-07-08  |  1.9 KB  |  68 lines

  1. package sun.tools.java;
  2.  
  3. import java.io.DataInputStream;
  4. import java.io.DataOutputStream;
  5. import java.io.IOException;
  6.  
  7. public final class BinaryAttribute implements Constants {
  8.    Identifier name;
  9.    byte[] data;
  10.    BinaryAttribute next;
  11.  
  12.    BinaryAttribute(Identifier var1, byte[] var2, BinaryAttribute var3) {
  13.       this.name = var1;
  14.       this.data = var2;
  15.       this.next = var3;
  16.    }
  17.  
  18.    public static BinaryAttribute load(DataInputStream var0, BinaryConstantPool var1, int var2) throws IOException {
  19.       BinaryAttribute var3 = null;
  20.       short var4 = var0.readShort();
  21.  
  22.       for(int var5 = 0; var5 < var4; ++var5) {
  23.          Identifier var6 = var1.getIdentifier(var0.readShort());
  24.          int var7 = var0.readInt();
  25.          if (var6.equals(Constants.idCode) && (var2 & 1) == 0) {
  26.             var0.skipBytes(var7);
  27.          } else {
  28.             byte[] var8 = new byte[var7];
  29.             var0.readFully(var8);
  30.             var3 = new BinaryAttribute(var6, var8, var3);
  31.          }
  32.       }
  33.  
  34.       return var3;
  35.    }
  36.  
  37.    static void write(BinaryAttribute var0, DataOutputStream var1, BinaryConstantPool var2, Environment var3) throws IOException {
  38.       int var4 = 0;
  39.  
  40.       for(BinaryAttribute var5 = var0; var5 != null; var5 = var5.next) {
  41.          ++var4;
  42.       }
  43.  
  44.       var1.writeShort(var4);
  45.  
  46.       for(BinaryAttribute var6 = var0; var6 != null; var6 = var6.next) {
  47.          Identifier var7 = var6.name;
  48.          byte[] var8 = var6.data;
  49.          var1.writeShort(var2.indexString(var7.toString(), var3));
  50.          var1.writeInt(var8.length);
  51.          var1.write(var8, 0, var8.length);
  52.       }
  53.  
  54.    }
  55.  
  56.    public Identifier getName() {
  57.       return this.name;
  58.    }
  59.  
  60.    public byte[] getData() {
  61.       return this.data;
  62.    }
  63.  
  64.    public BinaryAttribute getNextAttribute() {
  65.       return this.next;
  66.    }
  67. }
  68.