home *** CD-ROM | disk | FTP | other *** search
- package sun.tools.java;
-
- import java.io.DataInputStream;
- import java.io.DataOutputStream;
- import java.io.IOException;
-
- public final class BinaryAttribute implements Constants {
- Identifier name;
- byte[] data;
- BinaryAttribute next;
-
- BinaryAttribute(Identifier var1, byte[] var2, BinaryAttribute var3) {
- this.name = var1;
- this.data = var2;
- this.next = var3;
- }
-
- public static BinaryAttribute load(DataInputStream var0, BinaryConstantPool var1, int var2) throws IOException {
- BinaryAttribute var3 = null;
- short var4 = var0.readShort();
-
- for(int var5 = 0; var5 < var4; ++var5) {
- Identifier var6 = var1.getIdentifier(var0.readShort());
- int var7 = var0.readInt();
- if (var6.equals(Constants.idCode) && (var2 & 1) == 0) {
- var0.skipBytes(var7);
- } else {
- byte[] var8 = new byte[var7];
- var0.readFully(var8);
- var3 = new BinaryAttribute(var6, var8, var3);
- }
- }
-
- return var3;
- }
-
- static void write(BinaryAttribute var0, DataOutputStream var1, BinaryConstantPool var2, Environment var3) throws IOException {
- int var4 = 0;
-
- for(BinaryAttribute var5 = var0; var5 != null; var5 = var5.next) {
- ++var4;
- }
-
- var1.writeShort(var4);
-
- for(BinaryAttribute var6 = var0; var6 != null; var6 = var6.next) {
- Identifier var7 = var6.name;
- byte[] var8 = var6.data;
- var1.writeShort(var2.indexString(var7.toString(), var3));
- var1.writeInt(var8.length);
- var1.write(var8, 0, var8.length);
- }
-
- }
-
- public Identifier getName() {
- return this.name;
- }
-
- public byte[] getData() {
- return this.data;
- }
-
- public BinaryAttribute getNextAttribute() {
- return this.next;
- }
- }
-