01: /*
02: * Javassist, a Java-bytecode translator toolkit.
03: * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
04: *
05: * The contents of this file are subject to the Mozilla Public License Version
06: * 1.1 (the "License"); you may not use this file except in compliance with
07: * the License. Alternatively, the contents of this file may be used under
08: * the terms of the GNU Lesser General Public License Version 2.1 or later.
09: *
10: * Software distributed under the License is distributed on an "AS IS" basis,
11: * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12: * for the specific language governing rights and limitations under the
13: * License.
14: */
15:
16: package javassist.convert;
17:
18: import javassist.bytecode.*;
19: import javassist.CtClass;
20: import javassist.CannotCompileException;
21:
22: /**
23: * Transformer and its subclasses are used for executing
24: * code transformation specified by CodeConverter.
25: *
26: * @see javassist.CodeConverter
27: */
28: public abstract class Transformer implements Opcode {
29: private Transformer next;
30:
31: public Transformer(Transformer t) {
32: next = t;
33: }
34:
35: public Transformer getNext() {
36: return next;
37: }
38:
39: public void initialize(ConstPool cp, CodeAttribute attr) {
40: }
41:
42: public void clean() {
43: }
44:
45: public abstract int transform(CtClass clazz, int pos,
46: CodeIterator it, ConstPool cp)
47: throws CannotCompileException, BadBytecode;
48:
49: public int extraLocals() {
50: return 0;
51: }
52: }
|