KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > yworks > yguard > obf > classfile > VerificationTypeInfo


1 package com.yworks.yguard.obf.classfile;
2
3 import java.io.DataInput JavaDoc;
4 import java.io.DataOutput JavaDoc;
5
6 /**
7  * Representation of an VerificationTypeInfo struct
8  */

9 public class VerificationTypeInfo {
10   private int u2_cPoolIndex;
11   private int u2_offset;
12   private int u1_tag;
13   // Constants -------------------------------------------------------------
14

15   // Class Methods ---------------------------------------------------------
16

17   public static VerificationTypeInfo create(DataInput JavaDoc din) throws java.io.IOException JavaDoc {
18     if (din == null) throw new NullPointerException JavaDoc("DataInput cannot be null!");
19     VerificationTypeInfo vti = new VerificationTypeInfo();
20     vti.read(din);
21     return vti;
22   }
23
24
25   // Instance Methods ------------------------------------------------------
26
private VerificationTypeInfo() {
27   }
28
29   /** Check for Utf8 references to constant pool and mark them. */
30   protected void markUtf8Refs(ConstantPool pool) {
31     switch (u1_tag) {
32       case 0: //ITEM_Top;
33
break;
34       case 1: //ITEM_Integer;
35
break;
36       case 2: //ITEM_Float;
37
break;
38       case 3: //ITEM_Double;
39
break;
40       case 4: //ITEM_Long;
41
break;
42       case 5: //ITEM_Null;
43
break;
44       case 6: //ITEM_UninitializedThis;
45
break;
46       case 7: //ITEM_Object;
47
break;
48       case 8: //ITEM_Uninitialized;
49
break;
50       default:
51         throw new IllegalArgumentException JavaDoc("Unkown tag " + u1_tag);
52     }
53   }
54
55   private void read(DataInput JavaDoc din) throws java.io.IOException JavaDoc {
56     u2_cPoolIndex = -1;
57     u1_tag = din.readUnsignedByte();
58     switch (u1_tag) {
59       case 0: //ITEM_Top;
60
break;
61       case 1: //ITEM_Integer;
62
break;
63       case 2: //ITEM_Float;
64
break;
65       case 3: //ITEM_Double;
66
break;
67       case 4: //ITEM_Long;
68
break;
69       case 5: //ITEM_Null;
70
break;
71       case 6: //ITEM_UninitializedThis;
72
break;
73       case 7: //ITEM_Object;
74
u2_cPoolIndex = din.readUnsignedShort();
75         break;
76       case 8: //ITEM_Uninitialized;
77
u2_offset = din.readUnsignedShort();
78         break;
79       default:
80         throw new IllegalArgumentException JavaDoc("Unkown tag " + u1_tag);
81     }
82   }
83
84   /** Export the representation to a DataOutput stream. */
85   public void write(DataOutput JavaDoc dout) throws java.io.IOException JavaDoc {
86     dout.writeByte(u1_tag);
87     switch (u1_tag) {
88       case 0: //ITEM_Top;
89
break;
90       case 1: //ITEM_Integer;
91
break;
92       case 2: //ITEM_Float;
93
break;
94       case 3: //ITEM_Double;
95
break;
96       case 4: //ITEM_Long;
97
break;
98       case 5: //ITEM_Null;
99
break;
100       case 6: //ITEM_UninitializedThis;
101
break;
102       case 7: //ITEM_Object;
103
dout.writeShort(u2_cPoolIndex);
104         break;
105       case 8: //ITEM_Uninitialized;
106
dout.writeShort(u2_offset);
107         break;
108       default:
109         throw new IllegalArgumentException JavaDoc("Unkown tag " + u1_tag);
110     }
111   }
112 }
113
Popular Tags