1 /* 2 * Javassist, a Java-bytecode translator toolkit. 3 * Copyright (C) 1999-2007 Shigeru Chiba. All Rights Reserved. 4 * 5 * The contents of this file are subject to the Mozilla Public License Version 6 * 1.1 (the "License"); you may not use this file except in compliance with 7 * the License. Alternatively, the contents of this file may be used under 8 * the terms of the GNU Lesser General Public License Version 2.1 or later. 9 * 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.CannotCompileException; 19 import javassist.CtClass; 20 import javassist.bytecode.BadBytecode; 21 import javassist.bytecode.CodeAttribute; 22 import javassist.bytecode.CodeIterator; 23 import javassist.bytecode.ConstPool; 24 import javassist.bytecode.MethodInfo; 25 import javassist.bytecode.Opcode; 26 27 /** 28 * Transformer and its subclasses are used for executing 29 * code transformation specified by CodeConverter. 30 * 31 * @see javassist.CodeConverter 32 */ 33 public abstract class Transformer implements Opcode { 34 private Transformer next; 35 Transformer(Transformer t)36 public Transformer(Transformer t) { 37 next = t; 38 } 39 getNext()40 public Transformer getNext() { return next; } 41 initialize(ConstPool cp, CodeAttribute attr)42 public void initialize(ConstPool cp, CodeAttribute attr) {} 43 initialize(ConstPool cp, CtClass clazz, MethodInfo minfo)44 public void initialize(ConstPool cp, CtClass clazz, MethodInfo minfo) throws CannotCompileException { 45 initialize(cp, minfo.getCodeAttribute()); 46 } 47 clean()48 public void clean() {} 49 transform(CtClass clazz, int pos, CodeIterator it, ConstPool cp)50 public abstract int transform(CtClass clazz, int pos, CodeIterator it, 51 ConstPool cp) throws CannotCompileException, BadBytecode; 52 extraLocals()53 public int extraLocals() { return 0; } 54 extraStack()55 public int extraStack() { return 0; } 56 } 57