View Javadoc

1   package serp.bytecode;
2   
3   import java.util.*;
4   
5   import serp.bytecode.lowlevel.*;
6   
7   /***
8    * The State type is extended by various concrete types to change
9    * the behavior of a {@link BCClass}. All methods in this base
10   * implementation throw an {@link UnsupportedOperationException}
11   *
12   * @author Abe White
13   */
14  class State {
15      /***
16       * A singleton instance of this type that can be used to make a
17       * class invalid.
18       */
19      public static final State INVALID = new State();
20  
21      /***
22       * Return the magic number of the bytecode class.
23       */
24      public int getMagic() {
25          throw new UnsupportedOperationException();
26      }
27  
28      /***
29       * Set the magic number of the bytecode class.
30       */
31      public void setMagic(int magic) {
32          throw new UnsupportedOperationException();
33      }
34  
35      /***
36       * Return the major number of the bytecode class.
37       */
38      public int getMajorVersion() {
39          throw new UnsupportedOperationException();
40      }
41  
42      /***
43       * Set the major version of the bytecode class.
44       */
45      public void setMajorVersion(int major) {
46          throw new UnsupportedOperationException();
47      }
48  
49      /***
50       * Return the minor number of the bytecode class.
51       */
52      public int getMinorVersion() {
53          throw new UnsupportedOperationException();
54      }
55  
56      /***
57       * Set the minor version of the bytecode class.
58       */
59      public void setMinorVersion(int minor) {
60          throw new UnsupportedOperationException();
61      }
62  
63      /***
64       * Return the access flags of the bytecode class.
65       */
66      public int getAccessFlags() {
67          throw new UnsupportedOperationException();
68      }
69  
70      /***
71       * Set the access flags of the bytecode class.
72       */
73      public void setAccessFlags(int access) {
74          throw new UnsupportedOperationException();
75      }
76  
77      /***
78       * Return the {@link ConstantPool} index of the {@link ClassEntry}
79       * for this class, or 0 if none.
80       */
81      public int getIndex() {
82          throw new UnsupportedOperationException();
83      }
84  
85      /***
86       * Set the {@link ConstantPool} index of the {@link ClassEntry}
87       * for this class.
88       */
89      public void setIndex(int index) {
90          throw new UnsupportedOperationException();
91      }
92  
93      /***
94       * Return the {@link ConstantPool} index of the {@link ClassEntry}
95       * for the superclass of this class, or 0 if none.
96       */
97      public int getSuperclassIndex() {
98          throw new UnsupportedOperationException();
99      }
100 
101     /***
102      * Set the {@link ConstantPool} index of the {@link ClassEntry}
103      * for the superclass of this class. Throws
104      * {@link UnsupportedOperationException} by default.
105      */
106     public void setSuperclassIndex(int index) {
107         throw new UnsupportedOperationException();
108     }
109 
110     /***
111      * Return the {@link ConstantPool} indexes of the {@link ClassEntry}s
112      * for the indexes of this class, or empty list if none. If the
113      * state does not support changing the interfaces, the returned
114      * list should be immutable.
115      */
116     public List getInterfacesHolder() {
117         throw new UnsupportedOperationException();
118     }
119 
120     /***
121      * Return the {@link BCField}s of this class, or empty list if none.
122      * If the state does not support changing the fields, the returned
123      * list should be immutable.
124      */
125     public List getFieldsHolder() {
126         throw new UnsupportedOperationException();
127     }
128 
129     /***
130      * Return the {@link BCMethod}s of this class, or empty list if none.
131      * If the state does not support changing the methods, the returned
132      * list should be immutable.
133      */
134     public List getMethodsHolder() {
135         throw new UnsupportedOperationException();
136     }
137 
138     /***
139      * Return the {@link Attribute}s of this class, or empty list if
140      * none. If the state does not support changing the attributes, the
141      * returned list should be immutable.
142      */
143     public Collection getAttributesHolder() {
144         throw new UnsupportedOperationException();
145     }
146 
147     /***
148      * Return the constant pool of the class.
149      */
150     public ConstantPool getPool() {
151         throw new UnsupportedOperationException();
152     }
153 
154     /***
155      * Return the name of the class. The name should be in a form suitable
156      * for a {@link Class#forName} call.
157      */
158     public String getName() {
159         throw new UnsupportedOperationException();
160     }
161 
162     /***
163      * Return the name of the superclass. The name should be in a form
164      * suitable for a {@link Class#forName} call, or null if none.
165      */
166     public String getSuperclassName() {
167         throw new UnsupportedOperationException();
168     }
169 
170     /***
171      * Return the name of the component type of this array, or null if not
172      * an array. The name should be in a form suitable for a
173      * {@link Class#forName} call.
174      */
175     public String getComponentName() {
176         throw new UnsupportedOperationException();
177     }
178 
179     /***
180      * Return true if this class is a primitive.
181      */
182     public boolean isPrimitive() {
183         throw new UnsupportedOperationException();
184     }
185 
186     /***
187      * Return true if this class is an array.
188      */
189     public boolean isArray() {
190         throw new UnsupportedOperationException();
191     }
192 }