1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.bcel.generic;
18
19 /***
20 * Denotes an unparameterized instruction to load a value from a local
21 * variable, e.g. ILOAD.
22 *
23 * @version $Id: LoadInstruction.java 386056 2006-03-15 11:31:56Z tcurdt $
24 * @author <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
25 */
26 public abstract class LoadInstruction extends LocalVariableInstruction implements PushInstruction {
27
28 /***
29 * Empty constructor needed for the Class.newInstance() statement in
30 * Instruction.readInstruction(). Not to be used otherwise.
31 * tag and length are defined in readInstruction and initFromFile, respectively.
32 */
33 LoadInstruction(short canon_tag, short c_tag) {
34 super(canon_tag, c_tag);
35 }
36
37
38 /***
39 * @param opcode Instruction opcode
40 * @param c_tag Instruction number for compact version, ALOAD_0, e.g.
41 * @param n local variable index (unsigned short)
42 */
43 protected LoadInstruction(short opcode, short c_tag, int n) {
44 super(opcode, c_tag, n);
45 }
46
47
48 /***
49 * Call corresponding visitor method(s). The order is:
50 * Call visitor methods of implemented interfaces first, then
51 * call methods according to the class hierarchy in descending order,
52 * i.e., the most specific visitXXX() call comes last.
53 *
54 * @param v Visitor object
55 */
56 public void accept( Visitor v ) {
57 v.visitStackProducer(this);
58 v.visitPushInstruction(this);
59 v.visitTypedInstruction(this);
60 v.visitLocalVariableInstruction(this);
61 v.visitLoadInstruction(this);
62 }
63 }