package javassist;
-import javassist.bytecode.*;
-import javassist.convert.*;
+import javassist.bytecode.BadBytecode;
+import javassist.bytecode.CodeAttribute;
+import javassist.bytecode.CodeIterator;
+import javassist.bytecode.ConstPool;
+import javassist.bytecode.MethodInfo;
+import javassist.convert.TransformAccessArrayField;
+import javassist.convert.TransformAfter;
+import javassist.convert.TransformBefore;
+import javassist.convert.TransformCall;
+import javassist.convert.TransformFieldAccess;
+import javassist.convert.TransformNew;
+import javassist.convert.TransformNewClass;
+import javassist.convert.TransformReadField;
+import javassist.convert.TransformWriteField;
+import javassist.convert.Transformer;
/**
* Simple translator of method bodies
package javassist;
-import javassist.bytecode.*;
-import javassist.compiler.Javac;
+import javassist.bytecode.AccessFlag;
+import javassist.bytecode.AnnotationsAttribute;
+import javassist.bytecode.AttributeInfo;
+import javassist.bytecode.BadBytecode;
+import javassist.bytecode.Bytecode;
+import javassist.bytecode.CodeAttribute;
+import javassist.bytecode.CodeIterator;
+import javassist.bytecode.ConstPool;
+import javassist.bytecode.Descriptor;
+import javassist.bytecode.ExceptionsAttribute;
+import javassist.bytecode.LineNumberAttribute;
+import javassist.bytecode.LocalVariableAttribute;
+import javassist.bytecode.LocalVariableTypeAttribute;
+import javassist.bytecode.MethodInfo;
+import javassist.bytecode.Opcode;
+import javassist.bytecode.ParameterAnnotationsAttribute;
+import javassist.bytecode.SignatureAttribute;
+import javassist.bytecode.StackMap;
+import javassist.bytecode.StackMapTable;
import javassist.compiler.CompileError;
+import javassist.compiler.Javac;
import javassist.expr.ExprEditor;
/**
package javassist;
-import java.lang.ref.Reference;
-import java.lang.ref.WeakReference;
import java.io.BufferedInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.lang.ref.Reference;
+import java.lang.ref.WeakReference;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;
import javassist.bytecode.AccessFlag;
-import javassist.bytecode.AttributeInfo;
import javassist.bytecode.AnnotationsAttribute;
+import javassist.bytecode.AttributeInfo;
import javassist.bytecode.BadBytecode;
import javassist.bytecode.Bytecode;
import javassist.bytecode.ClassFile;
import javassist.bytecode.CodeAttribute;
-import javassist.bytecode.ConstantAttribute;
import javassist.bytecode.CodeIterator;
import javassist.bytecode.ConstPool;
+import javassist.bytecode.ConstantAttribute;
import javassist.bytecode.Descriptor;
import javassist.bytecode.EnclosingMethodAttribute;
import javassist.bytecode.FieldInfo;
package javassist;
-import javassist.bytecode.*;
-import javassist.compiler.Javac;
+import javassist.bytecode.BadBytecode;
+import javassist.bytecode.Bytecode;
+import javassist.bytecode.ClassFile;
+import javassist.bytecode.CodeAttribute;
+import javassist.bytecode.CodeIterator;
+import javassist.bytecode.ConstPool;
+import javassist.bytecode.Descriptor;
+import javassist.bytecode.MethodInfo;
+import javassist.bytecode.Opcode;
import javassist.compiler.CompileError;
+import javassist.compiler.Javac;
/**
* An instance of CtConstructor represents a constructor.
import java.util.List;
-import javassist.bytecode.*;
+import javassist.bytecode.AccessFlag;
+import javassist.bytecode.AnnotationsAttribute;
+import javassist.bytecode.AttributeInfo;
+import javassist.bytecode.Bytecode;
+import javassist.bytecode.ClassFile;
+import javassist.bytecode.ConstPool;
+import javassist.bytecode.Descriptor;
+import javassist.bytecode.FieldInfo;
+import javassist.bytecode.SignatureAttribute;
+import javassist.compiler.CompileError;
import javassist.compiler.Javac;
import javassist.compiler.SymbolTable;
-import javassist.compiler.CompileError;
import javassist.compiler.ast.ASTree;
-import javassist.compiler.ast.IntConst;
import javassist.compiler.ast.DoubleConst;
+import javassist.compiler.ast.IntConst;
import javassist.compiler.ast.StringL;
/**
package javassist;
-import javassist.bytecode.*;
+import javassist.bytecode.AccessFlag;
+import javassist.bytecode.BadBytecode;
+import javassist.bytecode.Bytecode;
+import javassist.bytecode.CodeAttribute;
+import javassist.bytecode.CodeIterator;
+import javassist.bytecode.ConstPool;
+import javassist.bytecode.Descriptor;
+import javassist.bytecode.MethodInfo;
+import javassist.bytecode.Opcode;
/**
* An instance of <code>CtMethod</code> represents a method.
import java.io.DataOutputStream;
import java.io.IOException;
+
import javassist.bytecode.ClassFile;
class CtNewClass extends CtClassType {
package javassist;
-import javassist.bytecode.*;
-import javassist.compiler.Javac;
-import javassist.compiler.CompileError;
import javassist.CtMethod.ConstParameter;
+import javassist.bytecode.Bytecode;
+import javassist.bytecode.ConstPool;
+import javassist.compiler.CompileError;
+import javassist.compiler.Javac;
/**
* A collection of static methods for creating a <code>CtConstructor</code>.
package javassist;
-import javassist.bytecode.*;
-import javassist.compiler.Javac;
-import javassist.compiler.CompileError;
import javassist.CtMethod.ConstParameter;
+import javassist.bytecode.AccessFlag;
+import javassist.bytecode.Bytecode;
+import javassist.bytecode.ConstPool;
+import javassist.bytecode.ExceptionsAttribute;
+import javassist.bytecode.FieldInfo;
+import javassist.bytecode.MethodInfo;
+import javassist.compiler.CompileError;
+import javassist.compiler.Javac;
/**
* A collection of static methods for creating a <code>CtMethod</code>.
package javassist;
-import javassist.bytecode.*;
import javassist.CtMethod.ConstParameter;
+import javassist.bytecode.Bytecode;
+import javassist.bytecode.ClassFile;
+import javassist.bytecode.Descriptor;
class CtNewWrappedConstructor extends CtNewWrappedMethod {
private static final int PASS_NONE = CtNewConstructor.PASS_NONE;
package javassist;
-import javassist.bytecode.*;
-import javassist.compiler.JvstCodeGen;
import java.util.Map;
import javassist.CtMethod.ConstParameter;
+import javassist.bytecode.AccessFlag;
+import javassist.bytecode.BadBytecode;
+import javassist.bytecode.Bytecode;
+import javassist.bytecode.ClassFile;
+import javassist.bytecode.MethodInfo;
+import javassist.bytecode.SyntheticAttribute;
+import javassist.compiler.JvstCodeGen;
class CtNewWrappedMethod {
package javassist;
-import java.io.*;
+import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
+import java.security.ProtectionDomain;
import java.util.Arrays;
import java.util.Hashtable;
import java.util.Vector;
-import java.security.ProtectionDomain;
/**
* The class loader for Javassist.
package javassist;
import java.io.InputStream;
-import java.net.URL;
import java.lang.ref.Reference;
import java.lang.ref.WeakReference;
+import java.net.URL;
/**
* A class search-path representing a class loader.
package javassist;
-import java.io.*;
+import java.io.ByteArrayOutputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
import java.lang.reflect.Modifier;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.Arrays;
+import java.util.Comparator;
-import javassist.bytecode.*;
-import java.util.*;
-import java.security.*;
+import javassist.bytecode.ClassFile;
+import javassist.bytecode.Descriptor;
/**
* Utility for calculating serialVersionUIDs for Serializable classes.
package javassist;
-import java.io.*;
-import java.net.*;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
/**
* A class search-path specified with URL (http).
package javassist.bytecode;
-import javassist.CtClass;
-import javassist.bytecode.annotation.AnnotationsWriter;
-import javassist.bytecode.annotation.MemberValue;
-
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.util.Map;
+import javassist.CtClass;
+import javassist.bytecode.annotation.AnnotationsWriter;
+import javassist.bytecode.annotation.MemberValue;
+
/**
* A class representing <code>AnnotationDefault_attribute</code>.
*
package javassist.bytecode;
-import java.util.Map;
-import java.util.HashMap;
-import java.io.IOException;
-import java.io.DataInputStream;
import java.io.ByteArrayOutputStream;
-import javassist.bytecode.annotation.*;
+import java.io.DataInputStream;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import javassist.bytecode.annotation.Annotation;
+import javassist.bytecode.annotation.AnnotationMemberValue;
+import javassist.bytecode.annotation.AnnotationsWriter;
+import javassist.bytecode.annotation.ArrayMemberValue;
+import javassist.bytecode.annotation.BooleanMemberValue;
+import javassist.bytecode.annotation.ByteMemberValue;
+import javassist.bytecode.annotation.CharMemberValue;
+import javassist.bytecode.annotation.ClassMemberValue;
+import javassist.bytecode.annotation.DoubleMemberValue;
+import javassist.bytecode.annotation.EnumMemberValue;
+import javassist.bytecode.annotation.FloatMemberValue;
+import javassist.bytecode.annotation.IntegerMemberValue;
+import javassist.bytecode.annotation.LongMemberValue;
+import javassist.bytecode.annotation.MemberValue;
+import javassist.bytecode.annotation.ShortMemberValue;
+import javassist.bytecode.annotation.StringMemberValue;
/**
* A class representing
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Iterator;
import java.util.List;
-import java.util.ListIterator;
import java.util.Map;
// Note: if you define a new subclass of AttributeInfo, then
package javassist.bytecode;
-import java.io.OutputStream;
import java.io.IOException;
+import java.io.OutputStream;
final class ByteStream extends OutputStream {
private byte[] buf;
package javassist.bytecode;
import java.io.PrintWriter;
-import javassist.Modifier;
import java.util.List;
+import javassist.Modifier;
+
/**
* A utility class for priting the contents of a class file.
* It prints a constant pool table, fields, and methods in a
package javassist.bytecode;
-import java.io.OutputStream;
import java.io.DataOutputStream;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.io.OutputStream;
/**
* A quick class-file writer. This is useful when a generated
package javassist.bytecode;
+import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.PrintWriter;
import java.io.IOException;
+import java.io.PrintWriter;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
package javassist.bytecode;
import java.io.DataInputStream;
-import java.util.Map;
import java.io.IOException;
+import java.util.Map;
/**
* <code>ConstantValue_attribute</code>.
package javassist.bytecode;
+import java.util.Map;
+
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtPrimitiveType;
import javassist.NotFoundException;
-import java.util.Map;
/**
* A support class for dealing with descriptors.
import java.io.IOException;
import java.util.Map;
-import javassist.CtConstructor;
-
/**
* <code>EnclosingMethod_attribute</code>.
*/
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
-import java.util.List;
import java.util.ArrayList;
+import java.util.List;
/**
* <code>field_info</code> structure.
package javassist.bytecode;
import java.io.DataInputStream;
-import java.util.Map;
import java.io.IOException;
+import java.util.Map;
/**
* <code>InnerClasses_attribute</code>.
package javassist.bytecode;
+import java.io.ByteArrayOutputStream;
+import java.io.DataInputStream;
+import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
-import java.io.IOException;
-import java.io.DataInputStream;
-import java.io.ByteArrayOutputStream;
import javassist.bytecode.AnnotationsAttribute.Copier;
import javassist.bytecode.AnnotationsAttribute.Parser;
import javassist.bytecode.AnnotationsAttribute.Renamer;
-import javassist.bytecode.annotation.*;
+import javassist.bytecode.annotation.Annotation;
+import javassist.bytecode.annotation.AnnotationsWriter;
/**
* A class representing <code>RuntimeVisibleAnnotations_attribute</code> and
import java.io.DataInputStream;
import java.io.IOException;
-import java.util.Map;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import javassist.CtClass;
package javassist.bytecode;
+import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.PrintWriter;
import java.io.IOException;
+import java.io.PrintWriter;
import java.util.Map;
+
import javassist.CannotCompileException;
/**
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
+
import javassist.bytecode.annotation.TypeAnnotationsWriter;
/**
package javassist.bytecode.annotation;
-import javassist.bytecode.ConstPool;
-import javassist.bytecode.Descriptor;
-import javassist.ClassPool;
-import javassist.CtClass;
-import javassist.CtMethod;
-import javassist.NotFoundException;
-
import java.io.IOException;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
+import javassist.ClassPool;
+import javassist.CtClass;
+import javassist.CtMethod;
+import javassist.NotFoundException;
+import javassist.bytecode.ConstPool;
+import javassist.bytecode.Descriptor;
+
/**
* The <code>annotation</code> structure.
*
*/
package javassist.bytecode.annotation;
-import javassist.ClassPool;
-import javassist.bytecode.ConstPool;
import java.io.IOException;
import java.lang.reflect.Method;
+import javassist.ClassPool;
+import javassist.bytecode.ConstPool;
+
/**
* Nested annotation.
*
package javassist.bytecode.annotation;
-import java.io.*;
+import java.io.IOException;
+import java.io.OutputStream;
import javassist.bytecode.ByteArray;
import javassist.bytecode.ConstPool;
*/
package javassist.bytecode.annotation;
-import javassist.ClassPool;
-import javassist.bytecode.ConstPool;
import java.io.IOException;
import java.lang.reflect.Array;
import java.lang.reflect.Method;
+import javassist.ClassPool;
+import javassist.bytecode.ConstPool;
+
/**
* Array member.
*
*/
package javassist.bytecode.annotation;
-import javassist.ClassPool;
-import javassist.bytecode.ConstPool;
import java.io.IOException;
import java.lang.reflect.Method;
+import javassist.ClassPool;
+import javassist.bytecode.ConstPool;
+
/**
* Boolean constant value.
*
*/
package javassist.bytecode.annotation;
-import javassist.ClassPool;
-import javassist.bytecode.ConstPool;
import java.io.IOException;
import java.lang.reflect.Method;
+import javassist.ClassPool;
+import javassist.bytecode.ConstPool;
+
/**
* Byte constant value.
*
package javassist.bytecode.annotation;
-import javassist.ClassPool;
-import javassist.bytecode.ConstPool;
import java.io.IOException;
import java.lang.reflect.Method;
+import javassist.ClassPool;
+import javassist.bytecode.ConstPool;
+
/**
* Char constant value.
*
package javassist.bytecode.annotation;
+import java.io.IOException;
+import java.lang.reflect.Method;
+
import javassist.ClassPool;
import javassist.bytecode.BadBytecode;
import javassist.bytecode.ConstPool;
import javassist.bytecode.Descriptor;
import javassist.bytecode.SignatureAttribute;
-import java.io.IOException;
-import java.lang.reflect.Method;
-
/**
* Class value.
*
package javassist.bytecode.annotation;
-import javassist.ClassPool;
-import javassist.bytecode.ConstPool;
import java.io.IOException;
import java.lang.reflect.Method;
+import javassist.ClassPool;
+import javassist.bytecode.ConstPool;
+
/**
* Double floating-point number constant value.
*
package javassist.bytecode.annotation;
-import javassist.ClassPool;
-import javassist.bytecode.ConstPool;
import java.io.IOException;
import java.lang.reflect.Method;
+import javassist.ClassPool;
+import javassist.bytecode.ConstPool;
+
/**
* Floating-point number constant value.
*
package javassist.bytecode.annotation;
-import javassist.ClassPool;
-import javassist.bytecode.ConstPool;
import java.io.IOException;
import java.lang.reflect.Method;
+import javassist.ClassPool;
+import javassist.bytecode.ConstPool;
+
/**
* Integer constant value.
*
package javassist.bytecode.annotation;
-import javassist.ClassPool;
-import javassist.bytecode.ConstPool;
import java.io.IOException;
import java.lang.reflect.Method;
+import javassist.ClassPool;
+import javassist.bytecode.ConstPool;
+
/**
* Long integer constant value.
*
package javassist.bytecode.annotation;
+import java.io.IOException;
+import java.lang.reflect.Method;
+
import javassist.ClassPool;
import javassist.bytecode.ConstPool;
import javassist.bytecode.Descriptor;
-import java.io.IOException;
-import java.lang.reflect.Array;
-import java.lang.reflect.Method;
-
/**
* The value of a member declared in an annotation.
*
package javassist.bytecode.annotation;
-import javassist.ClassPool;
-import javassist.bytecode.ConstPool;
import java.io.IOException;
import java.lang.reflect.Method;
+import javassist.ClassPool;
+import javassist.bytecode.ConstPool;
+
/**
* Short integer constant value.
*
package javassist.bytecode.annotation;
-import javassist.ClassPool;
-import javassist.bytecode.ConstPool;
import java.io.IOException;
import java.lang.reflect.Method;
+import javassist.ClassPool;
+import javassist.bytecode.ConstPool;
+
/**
* String constant value.
*
package javassist.bytecode.stackmap;
-import javassist.bytecode.*;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.ArrayList;
-import java.util.Arrays;
+
+import javassist.bytecode.BadBytecode;
+import javassist.bytecode.CodeAttribute;
+import javassist.bytecode.CodeIterator;
+import javassist.bytecode.ExceptionTable;
+import javassist.bytecode.MethodInfo;
+import javassist.bytecode.Opcode;
/**
* A basic block is a sequence of bytecode that does not contain jump/branch
import javassist.ClassPool;
import javassist.NotFoundException;
-import javassist.bytecode.*;
+import javassist.bytecode.BadBytecode;
+import javassist.bytecode.ByteArray;
+import javassist.bytecode.Bytecode;
+import javassist.bytecode.CodeAttribute;
+import javassist.bytecode.ConstPool;
+import javassist.bytecode.MethodInfo;
+import javassist.bytecode.StackMap;
+import javassist.bytecode.StackMapTable;
/**
* Stack map maker.
package javassist.bytecode.stackmap;
+import javassist.ClassPool;
+import javassist.bytecode.BadBytecode;
import javassist.bytecode.ByteArray;
-import javassist.bytecode.Opcode;
import javassist.bytecode.ConstPool;
import javassist.bytecode.Descriptor;
-import javassist.bytecode.BadBytecode;
-import javassist.ClassPool;
+import javassist.bytecode.Opcode;
/*
* A class for performing abstract interpretation.
package javassist.bytecode.stackmap;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
import javassist.ClassPool;
import javassist.CtClass;
import javassist.NotFoundException;
+import javassist.bytecode.BadBytecode;
import javassist.bytecode.ConstPool;
import javassist.bytecode.Descriptor;
import javassist.bytecode.StackMapTable;
-import javassist.bytecode.BadBytecode;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-import java.util.ArrayList;
public abstract class TypeData {
/* Memo:
package javassist.bytecode.stackmap;
-import javassist.bytecode.*;
+import javassist.bytecode.AccessFlag;
+import javassist.bytecode.BadBytecode;
+import javassist.bytecode.CodeAttribute;
+import javassist.bytecode.ConstPool;
+import javassist.bytecode.MethodInfo;
public class TypedBlock extends BasicBlock {
public int stackTop, numLocals;
package javassist.compiler;
-import javassist.*;
-import javassist.bytecode.*;
import java.util.HashMap;
import java.util.Map;
+import javassist.CannotCompileException;
+import javassist.ClassPool;
+import javassist.CtClass;
+import javassist.NotFoundException;
+import javassist.bytecode.AccessFlag;
+import javassist.bytecode.Bytecode;
+import javassist.bytecode.ClassFile;
+import javassist.bytecode.ConstPool;
+import javassist.bytecode.Descriptor;
+import javassist.bytecode.ExceptionsAttribute;
+import javassist.bytecode.FieldInfo;
+import javassist.bytecode.MethodInfo;
+import javassist.bytecode.SyntheticAttribute;
+
/**
* AccessorMaker maintains accessors to private members of an enclosing
* class. It is necessary for compiling a method in an inner class.
import java.util.Arrays;
import java.util.List;
-import javassist.compiler.ast.*;
-import javassist.bytecode.*;
+import javassist.bytecode.Bytecode;
+import javassist.bytecode.Opcode;
+import javassist.compiler.ast.ASTList;
+import javassist.compiler.ast.ASTree;
+import javassist.compiler.ast.ArrayInit;
+import javassist.compiler.ast.AssignExpr;
+import javassist.compiler.ast.BinExpr;
+import javassist.compiler.ast.CallExpr;
+import javassist.compiler.ast.CastExpr;
+import javassist.compiler.ast.CondExpr;
+import javassist.compiler.ast.Declarator;
+import javassist.compiler.ast.DoubleConst;
+import javassist.compiler.ast.Expr;
+import javassist.compiler.ast.FieldDecl;
+import javassist.compiler.ast.InstanceOfExpr;
+import javassist.compiler.ast.IntConst;
+import javassist.compiler.ast.Keyword;
+import javassist.compiler.ast.Member;
+import javassist.compiler.ast.MethodDecl;
+import javassist.compiler.ast.NewExpr;
+import javassist.compiler.ast.Pair;
+import javassist.compiler.ast.Stmnt;
+import javassist.compiler.ast.StringL;
+import javassist.compiler.ast.Symbol;
+import javassist.compiler.ast.Variable;
+import javassist.compiler.ast.Visitor;
/* The code generator is implemented by three files:
* CodeGen.java, MemberCodeGen.java, and JvstCodeGen.
package javassist.compiler;
+import javassist.CannotCompileException;
+import javassist.CtBehavior;
import javassist.CtClass;
-import javassist.CtPrimitiveType;
-import javassist.CtMember;
+import javassist.CtConstructor;
import javassist.CtField;
-import javassist.CtBehavior;
+import javassist.CtMember;
import javassist.CtMethod;
-import javassist.CtConstructor;
-import javassist.CannotCompileException;
+import javassist.CtPrimitiveType;
import javassist.Modifier;
+import javassist.NotFoundException;
+import javassist.bytecode.BadBytecode;
import javassist.bytecode.Bytecode;
import javassist.bytecode.CodeAttribute;
import javassist.bytecode.LocalVariableAttribute;
-import javassist.bytecode.BadBytecode;
import javassist.bytecode.Opcode;
-import javassist.NotFoundException;
-
-import javassist.compiler.ast.*;
+import javassist.compiler.ast.ASTList;
+import javassist.compiler.ast.ASTree;
+import javassist.compiler.ast.CallExpr;
+import javassist.compiler.ast.Declarator;
+import javassist.compiler.ast.Expr;
+import javassist.compiler.ast.FieldDecl;
+import javassist.compiler.ast.Member;
+import javassist.compiler.ast.MethodDecl;
+import javassist.compiler.ast.Stmnt;
+import javassist.compiler.ast.Symbol;
public class Javac {
JvstCodeGen gen;
package javassist.compiler;
-import javassist.*;
-import javassist.bytecode.*;
-import javassist.compiler.ast.*;
+import javassist.ClassPool;
+import javassist.CtClass;
+import javassist.CtPrimitiveType;
+import javassist.NotFoundException;
+import javassist.bytecode.Bytecode;
+import javassist.bytecode.Descriptor;
+import javassist.compiler.ast.ASTList;
+import javassist.compiler.ast.ASTree;
+import javassist.compiler.ast.CallExpr;
+import javassist.compiler.ast.CastExpr;
+import javassist.compiler.ast.Declarator;
+import javassist.compiler.ast.Expr;
+import javassist.compiler.ast.Member;
+import javassist.compiler.ast.Stmnt;
+import javassist.compiler.ast.Symbol;
/* Code generator accepting extended Java syntax for Javassist.
*/
package javassist.compiler;
-import javassist.*;
-import javassist.compiler.ast.*;
+import javassist.ClassPool;
+import javassist.CtClass;
+import javassist.CtPrimitiveType;
+import javassist.NotFoundException;
+import javassist.compiler.ast.ASTList;
+import javassist.compiler.ast.ASTree;
+import javassist.compiler.ast.CallExpr;
+import javassist.compiler.ast.CastExpr;
+import javassist.compiler.ast.Expr;
+import javassist.compiler.ast.Member;
+import javassist.compiler.ast.Symbol;
/* Type checker accepting extended Java syntax for Javassist.
*/
package javassist.compiler;
-import javassist.*;
-import javassist.bytecode.*;
-import javassist.compiler.ast.*;
-
import java.util.ArrayList;
import java.util.List;
+import javassist.ClassPool;
+import javassist.CtClass;
+import javassist.CtField;
+import javassist.CtMethod;
+import javassist.Modifier;
+import javassist.NotFoundException;
+import javassist.bytecode.AccessFlag;
+import javassist.bytecode.Bytecode;
+import javassist.bytecode.ClassFile;
+import javassist.bytecode.ConstPool;
+import javassist.bytecode.Descriptor;
+import javassist.bytecode.FieldInfo;
+import javassist.bytecode.MethodInfo;
+import javassist.bytecode.Opcode;
+import javassist.compiler.ast.ASTList;
+import javassist.compiler.ast.ASTree;
+import javassist.compiler.ast.ArrayInit;
+import javassist.compiler.ast.CallExpr;
+import javassist.compiler.ast.Declarator;
+import javassist.compiler.ast.Expr;
+import javassist.compiler.ast.Keyword;
+import javassist.compiler.ast.Member;
+import javassist.compiler.ast.MethodDecl;
+import javassist.compiler.ast.NewExpr;
+import javassist.compiler.ast.Pair;
+import javassist.compiler.ast.Stmnt;
+import javassist.compiler.ast.Symbol;
+
/* Code generator methods depending on javassist.* classes.
*/
public class MemberCodeGen extends CodeGen {
package javassist.compiler;
-import java.util.Hashtable;
import java.lang.ref.Reference;
import java.lang.ref.WeakReference;
-import java.util.WeakHashMap;
+import java.util.Hashtable;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import java.util.Iterator;
+import java.util.WeakHashMap;
-import javassist.*;
-import javassist.bytecode.*;
-import javassist.compiler.ast.*;
+import javassist.ClassPool;
+import javassist.CtClass;
+import javassist.CtField;
+import javassist.Modifier;
+import javassist.NotFoundException;
+import javassist.bytecode.AccessFlag;
+import javassist.bytecode.ClassFile;
+import javassist.bytecode.Descriptor;
+import javassist.bytecode.MethodInfo;
+import javassist.compiler.ast.ASTList;
+import javassist.compiler.ast.ASTree;
+import javassist.compiler.ast.Declarator;
+import javassist.compiler.ast.Keyword;
+import javassist.compiler.ast.Symbol;
/* Code generator methods depending on javassist.* classes.
*/
package javassist.compiler;
-import javassist.compiler.ast.*;
+import javassist.compiler.ast.ASTList;
+import javassist.compiler.ast.ASTree;
+import javassist.compiler.ast.ArrayInit;
+import javassist.compiler.ast.AssignExpr;
+import javassist.compiler.ast.BinExpr;
+import javassist.compiler.ast.CallExpr;
+import javassist.compiler.ast.CastExpr;
+import javassist.compiler.ast.CondExpr;
+import javassist.compiler.ast.Declarator;
+import javassist.compiler.ast.DoubleConst;
+import javassist.compiler.ast.Expr;
+import javassist.compiler.ast.FieldDecl;
+import javassist.compiler.ast.InstanceOfExpr;
+import javassist.compiler.ast.IntConst;
+import javassist.compiler.ast.Keyword;
+import javassist.compiler.ast.Member;
+import javassist.compiler.ast.MethodDecl;
+import javassist.compiler.ast.NewExpr;
+import javassist.compiler.ast.Pair;
+import javassist.compiler.ast.Stmnt;
+import javassist.compiler.ast.StringL;
+import javassist.compiler.ast.Symbol;
+import javassist.compiler.ast.Variable;
public final class Parser implements TokenId {
private Lex lex;
package javassist.compiler;
import java.util.HashMap;
+
import javassist.compiler.ast.Declarator;
public final class SymbolTable extends HashMap<String,Declarator> {
package javassist.compiler;
+import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtField;
-import javassist.ClassPool;
import javassist.Modifier;
import javassist.NotFoundException;
-import javassist.compiler.ast.*;
-import javassist.bytecode.*;
+import javassist.bytecode.FieldInfo;
+import javassist.bytecode.MethodInfo;
+import javassist.bytecode.Opcode;
+import javassist.compiler.ast.ASTList;
+import javassist.compiler.ast.ASTree;
+import javassist.compiler.ast.ArrayInit;
+import javassist.compiler.ast.AssignExpr;
+import javassist.compiler.ast.BinExpr;
+import javassist.compiler.ast.CallExpr;
+import javassist.compiler.ast.CastExpr;
+import javassist.compiler.ast.CondExpr;
+import javassist.compiler.ast.Declarator;
+import javassist.compiler.ast.DoubleConst;
+import javassist.compiler.ast.Expr;
+import javassist.compiler.ast.InstanceOfExpr;
+import javassist.compiler.ast.IntConst;
+import javassist.compiler.ast.Keyword;
+import javassist.compiler.ast.Member;
+import javassist.compiler.ast.NewExpr;
+import javassist.compiler.ast.StringL;
+import javassist.compiler.ast.Symbol;
+import javassist.compiler.ast.Variable;
+import javassist.compiler.ast.Visitor;
public class TypeChecker extends Visitor implements Opcode, TokenId {
static final String javaLangObject = "java.lang.Object";
package javassist.compiler.ast;
import java.io.Serializable;
+
import javassist.compiler.CompileError;
/**
package javassist.compiler.ast;
import javassist.compiler.CompileError;
-import javassist.compiler.TokenId;
import javassist.compiler.MemberResolver;
+import javassist.compiler.TokenId;
/**
* Method call expression.
package javassist.compiler.ast;
-import javassist.compiler.TokenId;
import javassist.compiler.CompileError;
+import javassist.compiler.TokenId;
/**
* Cast expression.
package javassist.compiler.ast;
-import javassist.compiler.TokenId;
import javassist.compiler.CompileError;
+import javassist.compiler.TokenId;
/**
* Variable declarator.
package javassist.compiler.ast;
-import javassist.compiler.TokenId;
import javassist.compiler.CompileError;
+import javassist.compiler.TokenId;
/**
* Expression.
package javassist.compiler.ast;
-import javassist.compiler.CompileError;
import javassist.CtField;
+import javassist.compiler.CompileError;
/**
* Member name.
package javassist.compiler.ast;
-import javassist.compiler.TokenId;
import javassist.compiler.CompileError;
+import javassist.compiler.TokenId;
/**
* New Expression.
package javassist.compiler.ast;
-import javassist.compiler.TokenId;
import javassist.compiler.CompileError;
+import javassist.compiler.TokenId;
/**
* Statement.
package javassist.convert;
import javassist.CannotCompileException;
+import javassist.CodeConverter.ArrayAccessReplacementMethodNames;
import javassist.CtClass;
import javassist.NotFoundException;
-import javassist.CodeConverter.ArrayAccessReplacementMethodNames;
import javassist.bytecode.BadBytecode;
import javassist.bytecode.CodeIterator;
import javassist.bytecode.ConstPool;
import javassist.CtMethod;
import javassist.NotFoundException;
-import javassist.bytecode.*;
+import javassist.bytecode.BadBytecode;
+import javassist.bytecode.CodeIterator;
public class TransformAfter extends TransformBefore {
public TransformAfter(Transformer next,
import javassist.CtClass;
import javassist.CtMethod;
import javassist.NotFoundException;
-import javassist.bytecode.*;
+import javassist.bytecode.BadBytecode;
+import javassist.bytecode.Bytecode;
+import javassist.bytecode.CodeAttribute;
+import javassist.bytecode.CodeIterator;
+import javassist.bytecode.ConstPool;
+import javassist.bytecode.Descriptor;
public class TransformBefore extends TransformCall {
protected CtClass[] parameterTypes;
package javassist.convert;
+import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
-import javassist.ClassPool;
import javassist.Modifier;
import javassist.NotFoundException;
-import javassist.bytecode.*;
+import javassist.bytecode.BadBytecode;
+import javassist.bytecode.CodeAttribute;
+import javassist.bytecode.CodeIterator;
+import javassist.bytecode.ConstPool;
public class TransformCall extends Transformer {
protected String classname, methodname, methodDescriptor;
package javassist.convert;
-import javassist.bytecode.*;
import javassist.CtClass;
import javassist.CtField;
import javassist.Modifier;
+import javassist.bytecode.CodeAttribute;
+import javassist.bytecode.CodeIterator;
+import javassist.bytecode.ConstPool;
final public class TransformFieldAccess extends Transformer {
private String newClassname, newFieldname;
package javassist.convert;
-import javassist.bytecode.*;
-import javassist.CtClass;
import javassist.CannotCompileException;
+import javassist.CtClass;
+import javassist.bytecode.CodeAttribute;
+import javassist.bytecode.CodeIterator;
+import javassist.bytecode.ConstPool;
+import javassist.bytecode.Descriptor;
+import javassist.bytecode.StackMap;
+import javassist.bytecode.StackMapTable;
final public class TransformNew extends Transformer {
private int nested;
package javassist.convert;
-import javassist.bytecode.*;
-import javassist.CtClass;
import javassist.CannotCompileException;
+import javassist.CtClass;
+import javassist.bytecode.CodeAttribute;
+import javassist.bytecode.CodeIterator;
+import javassist.bytecode.ConstPool;
final public class TransformNewClass extends Transformer {
private int nested;
package javassist.convert;
-import javassist.bytecode.*;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtField;
-import javassist.NotFoundException;
import javassist.Modifier;
+import javassist.NotFoundException;
+import javassist.bytecode.BadBytecode;
+import javassist.bytecode.CodeIterator;
+import javassist.bytecode.ConstPool;
public class TransformReadField extends Transformer {
protected String fieldname;
import javassist.CtClass;
import javassist.CtField;
-import javassist.bytecode.*;
+import javassist.bytecode.BadBytecode;
+import javassist.bytecode.CodeAttribute;
+import javassist.bytecode.CodeIterator;
+import javassist.bytecode.ConstPool;
final public class TransformWriteField extends TransformReadField {
public TransformWriteField(Transformer next, CtField field,
package javassist.expr;
-import javassist.*;
-import javassist.bytecode.*;
-import javassist.compiler.*;
+import javassist.CannotCompileException;
+import javassist.ClassPool;
+import javassist.CtBehavior;
+import javassist.CtClass;
+import javassist.NotFoundException;
+import javassist.bytecode.BadBytecode;
+import javassist.bytecode.Bytecode;
+import javassist.bytecode.CodeAttribute;
+import javassist.bytecode.CodeIterator;
+import javassist.bytecode.ConstPool;
+import javassist.bytecode.MethodInfo;
+import javassist.bytecode.Opcode;
+import javassist.compiler.CompileError;
+import javassist.compiler.Javac;
+import javassist.compiler.JvstCodeGen;
+import javassist.compiler.JvstTypeChecker;
+import javassist.compiler.ProceedHandler;
import javassist.compiler.ast.ASTList;
/**
package javassist.expr;
+import java.util.LinkedList;
+import java.util.List;
+
import javassist.CannotCompileException;
import javassist.ClassPool;
import javassist.CtBehavior;
import javassist.bytecode.Opcode;
import javassist.compiler.Javac;
-import java.util.LinkedList;
-import java.util.List;
-
/**
* Expression.
*/
package javassist.expr;
-import javassist.bytecode.*;
-import javassist.CtClass;
import javassist.CannotCompileException;
+import javassist.CtClass;
+import javassist.bytecode.BadBytecode;
+import javassist.bytecode.CodeAttribute;
+import javassist.bytecode.CodeIterator;
+import javassist.bytecode.ExceptionTable;
+import javassist.bytecode.MethodInfo;
+import javassist.bytecode.Opcode;
/**
* A translator of method bodies.
package javassist.expr;
-import javassist.*;
-import javassist.bytecode.*;
-import javassist.compiler.*;
+import javassist.CannotCompileException;
+import javassist.ClassPool;
+import javassist.CtBehavior;
+import javassist.CtClass;
+import javassist.CtField;
+import javassist.CtPrimitiveType;
+import javassist.NotFoundException;
+import javassist.bytecode.BadBytecode;
+import javassist.bytecode.Bytecode;
+import javassist.bytecode.CodeAttribute;
+import javassist.bytecode.CodeIterator;
+import javassist.bytecode.ConstPool;
+import javassist.bytecode.Descriptor;
+import javassist.bytecode.MethodInfo;
+import javassist.bytecode.Opcode;
+import javassist.compiler.CompileError;
+import javassist.compiler.Javac;
+import javassist.compiler.JvstCodeGen;
+import javassist.compiler.JvstTypeChecker;
+import javassist.compiler.ProceedHandler;
import javassist.compiler.ast.ASTList;
/**
package javassist.expr;
-import javassist.*;
-import javassist.bytecode.*;
-import javassist.compiler.*;
+import javassist.CannotCompileException;
+import javassist.CtBehavior;
+import javassist.CtClass;
+import javassist.NotFoundException;
+import javassist.bytecode.Bytecode;
+import javassist.bytecode.CodeAttribute;
+import javassist.bytecode.CodeIterator;
+import javassist.bytecode.ConstPool;
+import javassist.bytecode.ExceptionTable;
+import javassist.bytecode.MethodInfo;
+import javassist.bytecode.Opcode;
+import javassist.compiler.CompileError;
+import javassist.compiler.Javac;
/**
* A <code>catch</code> clause or a <code>finally</code> block.
package javassist.expr;
-import javassist.*;
-import javassist.bytecode.*;
-import javassist.compiler.*;
+import javassist.CannotCompileException;
+import javassist.ClassPool;
+import javassist.CtBehavior;
+import javassist.CtClass;
+import javassist.NotFoundException;
+import javassist.bytecode.BadBytecode;
+import javassist.bytecode.Bytecode;
+import javassist.bytecode.CodeAttribute;
+import javassist.bytecode.CodeIterator;
+import javassist.bytecode.ConstPool;
+import javassist.bytecode.MethodInfo;
+import javassist.bytecode.Opcode;
+import javassist.compiler.CompileError;
+import javassist.compiler.Javac;
+import javassist.compiler.JvstCodeGen;
+import javassist.compiler.JvstTypeChecker;
+import javassist.compiler.ProceedHandler;
import javassist.compiler.ast.ASTList;
/**
package javassist.expr;
-import javassist.*;
-import javassist.bytecode.*;
-import javassist.compiler.*;
+import javassist.CannotCompileException;
+import javassist.ClassPool;
+import javassist.CtBehavior;
+import javassist.CtClass;
+import javassist.CtMethod;
+import javassist.NotFoundException;
+import javassist.bytecode.BadBytecode;
+import javassist.bytecode.Bytecode;
+import javassist.bytecode.CodeAttribute;
+import javassist.bytecode.CodeIterator;
+import javassist.bytecode.ConstPool;
+import javassist.bytecode.Descriptor;
+import javassist.bytecode.MethodInfo;
+import javassist.compiler.CompileError;
+import javassist.compiler.Javac;
/**
* Method invocation (caller-side expression).
package javassist.expr;
-import javassist.*;
-import javassist.bytecode.*;
-import javassist.compiler.*;
+import javassist.CannotCompileException;
+import javassist.CtBehavior;
+import javassist.CtClass;
+import javassist.CtPrimitiveType;
+import javassist.NotFoundException;
+import javassist.bytecode.BadBytecode;
+import javassist.bytecode.Bytecode;
+import javassist.bytecode.CodeAttribute;
+import javassist.bytecode.CodeIterator;
+import javassist.bytecode.ConstPool;
+import javassist.bytecode.Descriptor;
+import javassist.bytecode.MethodInfo;
+import javassist.bytecode.Opcode;
+import javassist.compiler.CompileError;
+import javassist.compiler.Javac;
+import javassist.compiler.JvstCodeGen;
+import javassist.compiler.JvstTypeChecker;
+import javassist.compiler.ProceedHandler;
import javassist.compiler.ast.ASTList;
/**
package javassist.expr;
-import javassist.*;
-import javassist.bytecode.*;
-import javassist.compiler.*;
+import javassist.CannotCompileException;
+import javassist.ClassPool;
+import javassist.CtBehavior;
+import javassist.CtClass;
+import javassist.CtConstructor;
+import javassist.NotFoundException;
+import javassist.bytecode.BadBytecode;
+import javassist.bytecode.Bytecode;
+import javassist.bytecode.CodeAttribute;
+import javassist.bytecode.CodeIterator;
+import javassist.bytecode.ConstPool;
+import javassist.bytecode.Descriptor;
+import javassist.bytecode.MethodInfo;
+import javassist.bytecode.Opcode;
+import javassist.compiler.CompileError;
+import javassist.compiler.Javac;
+import javassist.compiler.JvstCodeGen;
+import javassist.compiler.JvstTypeChecker;
+import javassist.compiler.ProceedHandler;
import javassist.compiler.ast.ASTList;
/**
package javassist.tools;
-import javassist.CannotCompileException;
-import javassist.CtBehavior;
-
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
+import javassist.CannotCompileException;
+import javassist.CtBehavior;
+
/**
* Creates bytecode that when executed calls back to the instance's result method.
*
package javassist.tools;
-import java.io.*;
+import java.io.DataInputStream;
+import java.io.FileInputStream;
+import java.io.PrintWriter;
+
import javassist.bytecode.ClassFile;
import javassist.bytecode.ClassFilePrinter;
package javassist.tools.reflect;
import java.lang.reflect.InvocationTargetException;
-import java.lang.IllegalAccessException;
/**
* Thrown when method invocation using the reflection API has thrown
package javassist.tools.reflect;
import javassist.CannotCompileException;
+import javassist.CtClass;
/**
* Thrown by <code>makeReflective()</code> in <code>Reflection</code>
package javassist.tools.reflect;
-import java.lang.reflect.*;
-import java.util.Arrays;
-import java.io.Serializable;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
+import java.io.Serializable;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Arrays;
/**
* A runtime class metaobject.
package javassist.tools.reflect;
-import javassist.CtClass;
-import javassist.ClassPool;
import java.io.PrintStream;
+import javassist.ClassPool;
+import javassist.CtClass;
+
class CompiledClass {
public String classname;
public String metaobject;
package javassist.tools.reflect;
import javassist.CannotCompileException;
-import javassist.NotFoundException;
import javassist.ClassPool;
+import javassist.NotFoundException;
/**
* A class loader for reflection.
package javassist.tools.reflect;
-import java.lang.reflect.Method;
-import java.io.Serializable;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
+import java.io.Serializable;
+import java.lang.reflect.Method;
/**
* A runtime metaobject.
package javassist.tools.reflect;
-import javassist.*;
+import javassist.CannotCompileException;
+import javassist.ClassPool;
+import javassist.CodeConverter;
+import javassist.CtClass;
+import javassist.CtField;
+import javassist.CtMethod;
import javassist.CtMethod.ConstParameter;
-import javassist.bytecode.ClassFile;
+import javassist.CtNewMethod;
+import javassist.Modifier;
+import javassist.NotFoundException;
+import javassist.Translator;
import javassist.bytecode.BadBytecode;
+import javassist.bytecode.ClassFile;
import javassist.bytecode.MethodInfo;
/**
package javassist.tools.rmi;
-import java.io.*;
-
-import javassist.tools.web.*;
-import javassist.CannotCompileException;
-import javassist.NotFoundException;
-import javassist.ClassPool;
+import java.io.DataInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InvalidClassException;
+import java.io.NotSerializableException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
import java.lang.reflect.Method;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.Vector;
+import javassist.CannotCompileException;
+import javassist.ClassPool;
+import javassist.NotFoundException;
+import javassist.tools.web.BadHttpRequest;
+import javassist.tools.web.Webserver;
+
/**
* An AppletServer object is a web server that an ObjectImporter
* communicates with. It makes the objects specified by
package javassist.tools.rmi;
-import java.io.*;
-import java.net.*;
-import java.lang.reflect.*;
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
+import java.lang.reflect.Constructor;
+import java.net.Socket;
+import java.net.URL;
/**
* The object importer enables applets to call a method on a remote
package javassist.tools.rmi;
-import javassist.*;
import java.lang.reflect.Method;
import java.util.Hashtable;
import java.util.Map;
+import javassist.CannotCompileException;
+import javassist.ClassPool;
+import javassist.CtClass;
+import javassist.CtConstructor;
+import javassist.CtField;
+import javassist.CtMethod;
import javassist.CtMethod.ConstParameter;
+import javassist.CtNewConstructor;
+import javassist.CtNewMethod;
+import javassist.Modifier;
+import javassist.NotFoundException;
+import javassist.Translator;
/**
* A stub-code generator. It is used for producing a proxy class.
package javassist.tools.web;
-import java.io.*;
-import java.net.*;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.net.URLConnection;
/**
* A sample applet viewer.
package javassist.tools.web;
-import java.net.*;
-import java.io.*;
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.ServerSocket;
+import java.net.Socket;
import java.util.Date;
-import javassist.*;
+
+import javassist.CannotCompileException;
+import javassist.ClassPool;
+import javassist.CtClass;
+import javassist.NotFoundException;
+import javassist.Translator;
/**
* A web server for running sample programs.
import java.lang.instrument.ClassDefinition;
import java.lang.instrument.Instrumentation;
import java.lang.instrument.UnmodifiableClassException;
+import java.lang.management.ManagementFactory;
import java.util.jar.Attributes;
import java.util.jar.JarEntry;
import java.util.jar.JarOutputStream;
import java.util.jar.Manifest;
-import java.lang.management.ManagementFactory;
+
import com.sun.tools.attach.VirtualMachine;
import javassist.CannotCompileException;
package javassist.util;
-import com.sun.jdi.*;
-import com.sun.jdi.connect.*;
-import com.sun.jdi.event.*;
-import com.sun.jdi.request.*;
-import java.io.*;
-import java.util.*;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import com.sun.jdi.Bootstrap;
+import com.sun.jdi.ReferenceType;
+import com.sun.jdi.VirtualMachine;
+import com.sun.jdi.connect.AttachingConnector;
+import com.sun.jdi.connect.Connector;
+import com.sun.jdi.connect.IllegalConnectorArgumentsException;
+import com.sun.jdi.event.Event;
+import com.sun.jdi.event.EventIterator;
+import com.sun.jdi.event.EventQueue;
+import com.sun.jdi.event.EventSet;
+import com.sun.jdi.event.MethodEntryEvent;
+import com.sun.jdi.request.EventRequest;
+import com.sun.jdi.request.EventRequestManager;
+import com.sun.jdi.request.MethodEntryRequest;
class Trigger {
void doSwap() {}
package javassist.util.proxy;
+import java.lang.ref.Reference;
+import java.lang.ref.WeakReference;
+import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Constructor;
import java.lang.reflect.Member;
+import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.security.ProtectionDomain;
-import java.util.*;
-import java.lang.ref.Reference;
-import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.WeakHashMap;
import javassist.CannotCompileException;
-import javassist.bytecode.*;
+import javassist.bytecode.AccessFlag;
+import javassist.bytecode.Bytecode;
+import javassist.bytecode.ClassFile;
+import javassist.bytecode.CodeAttribute;
+import javassist.bytecode.ConstPool;
+import javassist.bytecode.Descriptor;
+import javassist.bytecode.DuplicateMemberException;
+import javassist.bytecode.ExceptionsAttribute;
+import javassist.bytecode.FieldInfo;
+import javassist.bytecode.MethodInfo;
+import javassist.bytecode.Opcode;
+import javassist.bytecode.StackMapTable;
/*
* This class is implemented only with the lower-level API of Javassist.
package javassist.util.proxy;
-import java.lang.reflect.Method;
import java.io.Serializable;
+import java.lang.reflect.Method;
/**
* Runtime support routines that the classes generated by ProxyFactory use.
package javassist.util.proxy;
-import java.io.Serializable;
-import java.lang.reflect.InvocationTargetException;
import java.io.InvalidClassException;
import java.io.InvalidObjectException;
import java.io.ObjectStreamException;
+import java.io.Serializable;
+import java.lang.reflect.InvocationTargetException;
import java.security.AccessController;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;