KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > oracle > toplink > libraries > asm > attrs > StackMapType


1 /**
2  * ASM: a very small and fast Java bytecode manipulation framework
3  * Copyright (c) 2000,2002,2003 INRIA, France Telecom
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  * 1. Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright
12  * notice, this list of conditions and the following disclaimer in the
13  * documentation and/or other materials provided with the distribution.
14  * 3. Neither the name of the copyright holders nor the names of its
15  * contributors may be used to endorse or promote products derived from
16  * this software without specific prior written permission.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
22  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
28  * THE POSSIBILITY OF SUCH DAMAGE.
29  */

30
31 package oracle.toplink.libraries.asm.attrs;
32
33 import oracle.toplink.libraries.asm.Label;
34
35 /**
36  * Verification type info used by {@link StackMapAttribute}.
37  *
38  * @see <a HREF="http://www.jcp.org/en/jsr/detail?id=139">JSR 139 : Connected
39  * Limited Device Configuration 1.1</a>
40  *
41  * @author Eugene Kuleshov
42  */

43
44 public class StackMapType {
45
46   public static final int ITEM_Top = 0;
47
48   public static final int ITEM_Integer = 1;
49
50   public static final int ITEM_Float = 2;
51
52   public static final int ITEM_Double = 3;
53
54   public static final int ITEM_Long = 4;
55
56   public static final int ITEM_Null = 5;
57
58   public static final int ITEM_UninitializedThis = 6;
59
60   public static final int ITEM_Object = 7;
61
62   public static final int ITEM_Uninitialized = 8;
63
64   public static final String JavaDoc[] ITEM_NAMES = {
65     "Top",
66     "Integer",
67     "Float",
68     "Double",
69     "Long",
70     "Null",
71     "UninitializedThis",
72     "Object",
73     "Uninitialized"
74   };
75
76   private int type;
77
78   private Label offset;
79
80   private String JavaDoc object;
81
82   private StackMapType (int type) {
83     this.type = type;
84   }
85
86   public int getType () {
87     return type;
88   }
89
90   public static StackMapType getTypeInfo (int itemType) {
91     return new StackMapType(itemType);
92   }
93
94   public void setLabel (Label offset) {
95     this.offset = offset;
96   }
97
98   public void setObject (String JavaDoc object) {
99     this.object = object;
100   }
101
102   public Label getLabel () {
103     return offset;
104   }
105
106   public String JavaDoc getObject () {
107     return object;
108   }
109
110   public String JavaDoc toString () {
111     StringBuffer JavaDoc sb = new StringBuffer JavaDoc(ITEM_NAMES[type]);
112     if (type == ITEM_Object) {
113       sb.append(":").append(object);
114     }
115     if (type == ITEM_Uninitialized) {
116       sb.append(":L").append(System.identityHashCode(offset));
117     }
118     return sb.toString();
119   }
120 }
121
Popular Tags