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 16package javassist.convert; 17 18import javassist.CannotCompileException; 19import javassist.CtClass; 20import javassist.bytecode.BadBytecode; 21import javassist.bytecode.CodeAttribute; 22import javassist.bytecode.CodeIterator; 23import javassist.bytecode.ConstPool; 24import javassist.bytecode.MethodInfo; 25import 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 */ 33public abstract class Transformer implements Opcode { 34 private Transformer next; 35 36 public Transformer(Transformer t) { 37 next = t; 38 } 39 40 public Transformer getNext() { return next; } 41 42 public void initialize(ConstPool cp, CodeAttribute attr) {} 43 44 public void initialize(ConstPool cp, CtClass clazz, MethodInfo minfo) throws CannotCompileException { 45 initialize(cp, minfo.getCodeAttribute()); 46 } 47 48 public void clean() {} 49 50 public abstract int transform(CtClass clazz, int pos, CodeIterator it, 51 ConstPool cp) throws CannotCompileException, BadBytecode; 52 53 public int extraLocals() { return 0; } 54 55 public int extraStack() { return 0; } 56} 57