]> source.dussan.org Git - javassist.git/commitdiff
updated copyright notices
authorchiba <chiba@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>
Wed, 11 Jan 2006 06:45:57 +0000 (06:45 +0000)
committerchiba <chiba@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>
Wed, 11 Jan 2006 06:45:57 +0000 (06:45 +0000)
git-svn-id: http://anonsvn.jboss.org/repos/javassist/trunk@234 30ef5769-5b8d-40dd-aea6-55b5d6557bb3

157 files changed:
License.html
Readme.html
src/main/javassist/ByteArrayClassPath.java
src/main/javassist/CannotCompileException.java
src/main/javassist/ClassClassPath.java
src/main/javassist/ClassMap.java
src/main/javassist/ClassPath.java
src/main/javassist/ClassPool.java
src/main/javassist/ClassPoolTail.java
src/main/javassist/CodeConverter.java
src/main/javassist/CtArray.java
src/main/javassist/CtBehavior.java
src/main/javassist/CtClass.java
src/main/javassist/CtClassType.java
src/main/javassist/CtConstructor.java
src/main/javassist/CtField.java
src/main/javassist/CtMember.java
src/main/javassist/CtMethod.java
src/main/javassist/CtNewClass.java
src/main/javassist/CtNewConstructor.java
src/main/javassist/CtNewMethod.java
src/main/javassist/CtNewNestedClass.java
src/main/javassist/CtNewWrappedConstructor.java
src/main/javassist/CtNewWrappedMethod.java
src/main/javassist/CtPrimitiveType.java
src/main/javassist/Loader.java
src/main/javassist/LoaderClassPath.java
src/main/javassist/Modifier.java
src/main/javassist/NotFoundException.java
src/main/javassist/SerialVersionUID.java
src/main/javassist/Translator.java
src/main/javassist/URLClassPath.java
src/main/javassist/bytecode/AccessFlag.java
src/main/javassist/bytecode/AnnotationDefaultAttribute.java
src/main/javassist/bytecode/AnnotationsAttribute.java
src/main/javassist/bytecode/AttributeInfo.java
src/main/javassist/bytecode/BadBytecode.java
src/main/javassist/bytecode/ByteArray.java
src/main/javassist/bytecode/Bytecode.java
src/main/javassist/bytecode/ClassFile.java
src/main/javassist/bytecode/ClassFileWriter.java
src/main/javassist/bytecode/CodeAnalyzer.java
src/main/javassist/bytecode/CodeAttribute.java
src/main/javassist/bytecode/CodeIterator.java
src/main/javassist/bytecode/ConstPool.java
src/main/javassist/bytecode/ConstantAttribute.java
src/main/javassist/bytecode/DeprecatedAttribute.java
src/main/javassist/bytecode/Descriptor.java
src/main/javassist/bytecode/EnclosingMethodAttribute.java
src/main/javassist/bytecode/ExceptionTable.java
src/main/javassist/bytecode/ExceptionsAttribute.java
src/main/javassist/bytecode/FieldInfo.java
src/main/javassist/bytecode/InnerClassesAttribute.java
src/main/javassist/bytecode/LineNumberAttribute.java
src/main/javassist/bytecode/LocalVariableAttribute.java
src/main/javassist/bytecode/LongVector.java
src/main/javassist/bytecode/MethodInfo.java
src/main/javassist/bytecode/Mnemonic.java
src/main/javassist/bytecode/Opcode.java
src/main/javassist/bytecode/ParameterAnnotationsAttribute.java
src/main/javassist/bytecode/SignatureAttribute.java
src/main/javassist/bytecode/SourceFileAttribute.java
src/main/javassist/bytecode/SyntheticAttribute.java
src/main/javassist/bytecode/annotation/AnnotationImpl.java
src/main/javassist/bytecode/annotation/AnnotationsWriter.java
src/main/javassist/compiler/AccessorMaker.java
src/main/javassist/compiler/CodeGen.java
src/main/javassist/compiler/CompileError.java
src/main/javassist/compiler/Javac.java
src/main/javassist/compiler/JvstCodeGen.java
src/main/javassist/compiler/JvstTypeChecker.java
src/main/javassist/compiler/KeywordTable.java
src/main/javassist/compiler/Lex.java
src/main/javassist/compiler/MemberCodeGen.java
src/main/javassist/compiler/MemberResolver.java
src/main/javassist/compiler/NoFieldException.java
src/main/javassist/compiler/Parser.java
src/main/javassist/compiler/ProceedHandler.java
src/main/javassist/compiler/SymbolTable.java
src/main/javassist/compiler/SyntaxError.java
src/main/javassist/compiler/TokenId.java
src/main/javassist/compiler/TypeChecker.java
src/main/javassist/compiler/ast/ASTList.java
src/main/javassist/compiler/ast/ASTree.java
src/main/javassist/compiler/ast/ArrayInit.java
src/main/javassist/compiler/ast/AssignExpr.java
src/main/javassist/compiler/ast/BinExpr.java
src/main/javassist/compiler/ast/CallExpr.java
src/main/javassist/compiler/ast/CastExpr.java
src/main/javassist/compiler/ast/CondExpr.java
src/main/javassist/compiler/ast/Declarator.java
src/main/javassist/compiler/ast/DoubleConst.java
src/main/javassist/compiler/ast/Expr.java
src/main/javassist/compiler/ast/FieldDecl.java
src/main/javassist/compiler/ast/InstanceOfExpr.java
src/main/javassist/compiler/ast/IntConst.java
src/main/javassist/compiler/ast/Keyword.java
src/main/javassist/compiler/ast/Member.java
src/main/javassist/compiler/ast/MethodDecl.java
src/main/javassist/compiler/ast/NewExpr.java
src/main/javassist/compiler/ast/Pair.java
src/main/javassist/compiler/ast/Stmnt.java
src/main/javassist/compiler/ast/StringL.java
src/main/javassist/compiler/ast/Symbol.java
src/main/javassist/compiler/ast/Variable.java
src/main/javassist/compiler/ast/Visitor.java
src/main/javassist/convert/TransformAfter.java
src/main/javassist/convert/TransformBefore.java
src/main/javassist/convert/TransformCall.java
src/main/javassist/convert/TransformFieldAccess.java
src/main/javassist/convert/TransformNew.java
src/main/javassist/convert/TransformReadField.java
src/main/javassist/convert/TransformWriteField.java
src/main/javassist/convert/Transformer.java
src/main/javassist/expr/Cast.java
src/main/javassist/expr/ConstructorCall.java
src/main/javassist/expr/Expr.java
src/main/javassist/expr/ExprEditor.java
src/main/javassist/expr/FieldAccess.java
src/main/javassist/expr/Handler.java
src/main/javassist/expr/Instanceof.java
src/main/javassist/expr/MethodCall.java
src/main/javassist/expr/NewArray.java
src/main/javassist/expr/NewExpr.java
src/main/javassist/runtime/Cflow.java
src/main/javassist/runtime/Desc.java
src/main/javassist/runtime/DotClass.java
src/main/javassist/runtime/Inner.java
src/main/javassist/tools/Dump.java
src/main/javassist/tools/reflect/CannotCreateException.java
src/main/javassist/tools/reflect/CannotInvokeException.java
src/main/javassist/tools/reflect/CannotReflectException.java
src/main/javassist/tools/reflect/ClassMetaobject.java
src/main/javassist/tools/reflect/Compiler.java
src/main/javassist/tools/reflect/Loader.java
src/main/javassist/tools/reflect/Metalevel.java
src/main/javassist/tools/reflect/Metaobject.java
src/main/javassist/tools/reflect/Reflection.java
src/main/javassist/tools/reflect/Sample.java
src/main/javassist/tools/rmi/AppletServer.java
src/main/javassist/tools/rmi/ObjectImporter.java
src/main/javassist/tools/rmi/ObjectNotFoundException.java
src/main/javassist/tools/rmi/Proxy.java
src/main/javassist/tools/rmi/RemoteException.java
src/main/javassist/tools/rmi/RemoteRef.java
src/main/javassist/tools/rmi/Sample.java
src/main/javassist/tools/rmi/StubGenerator.java
src/main/javassist/tools/web/BadHttpRequest.java
src/main/javassist/tools/web/Viewer.java
src/main/javassist/tools/web/Webserver.java
src/main/javassist/util/HotSwapper.java
src/main/javassist/util/proxy/FactoryHelper.java
src/main/javassist/util/proxy/MethodFilter.java
src/main/javassist/util/proxy/MethodHandler.java
src/main/javassist/util/proxy/ProxyFactory.java
src/main/javassist/util/proxy/ProxyObject.java
src/main/javassist/util/proxy/RuntimeSupport.java

index 7a734c3a0de0a3aa61494d578a7cbffae0619952..3a9d52f9097dc2d74c6ade92217a261b88567cb4 100644 (file)
@@ -337,7 +337,7 @@ MISCELLANEOUS.</B>
   basis. Nothing herein is intended or shall be deemed to constitute any 
   admission of liability.</UL><B>13. MULTIPLE-LICENSED CODE.</B> 
 <UL>Initial Developer may designate portions of the Covered Code as 
-  \93Multiple-Licensed\94.&nbsp; \93Multiple-Licensed\94 means that the Initial 
+  \93Multiple-Licensed?.&nbsp; \93Multiple-Licensed? means that the Initial 
   Developer permits you to utilize portions of the Covered Code under Your 
   choice of the MPL or the alternative licenses, if any, specified by the 
   Initial Developer in the file described in Exhibit A.</UL>
@@ -353,7 +353,7 @@ MISCELLANEOUS.</B>
   <P>The Original Code is Javassist. 
   <P>The Initial Developer of the Original Code is Shigeru Chiba. 
   Portions created by the Initial Developer are<BR>&nbsp;
-  Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved. 
+  Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved. 
   <P>Contributor(s): ______________________________________. 
 
   <P>Alternatively, the contents of this file may be used under the terms of
index 9c88637d573ca3812876013e53cac2cc2e099b64..3d7f8d925402498cda0ddb30e33e4dd9a7fbd910 100644 (file)
@@ -7,7 +7,7 @@
 
 <h1>Javassist version 3</h1>
 
-<h3>Copyright (C) 2000-2005 by Shigeru Chiba, All rights reserved.</h3>
+<h3>Copyright (C) 2000-2006 by Shigeru Chiba, All rights reserved.</h3>
 
 <p><br></p>
 
index 2bcd25740c16e2425eeeca42d0f032313894bda8..54b17a0e9b56976163f0cdf1e831454b969c60f5 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index a16a4e5e6830a06a6593365af2ac4dc0a21655a2..7ea97b0f2da32ebccda729454a4cf09fe61695c4 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 1990f3ef496602e9e05ddbe79c0cede111f3a8ff..5217396b1fc2073b9c4044cf068caba8a6f07563 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 228eb2657b9693af51cc1b6c65a2d0ab5373bd41..916dee5eda83bf7103c0f02cbce58f65930168c7 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 4148a59db5aa0915383813b1dcce5c1432820e8b..0da29aae636121d5d1b6265f1864f4330ba0123c 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 35b92f93b6a5ae518281668307ddd5fe469eeaac..b0d8f9e9737d55473624d50f72947e30f367836b 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 2f6fb1ea552a406ee3e3f42cad5f014df326a38c..db75f282a6c11036d12cd306b11be2c3f811dccb 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 240312dff5c469fd88b248548d0fb9ab89f0d01a..b4c476767f48376372436372b5b5f8a435690058 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index e8e507210bb69ce7915fdc83405ef273f3530f26..328b1bc9fb6e5359c421694a70971e3295521826 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 41e1df7effc7d252c424391f9864bab9251a1b15..7104784494a36123dc6aaecd060838fa96ed9558 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index d4178e7f9aa1bff67e34569fac50ac2e32417191..7e23352c70b72cb89a7b911484ef0e3b735ad858 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
@@ -62,7 +62,7 @@ public abstract class CtClass {
      */
     public static void main(String[] args) {
         System.out.println("Javassist version " + CtClass.version);
-        System.out.println("Copyright (C) 1999-2005 Shigeru Chiba."
+        System.out.println("Copyright (C) 1999-2006 Shigeru Chiba."
                            + " All Rights Reserved.");
     }
 
index 92f73d3e6eb3bc9c10496c4768d97445106cd660..1eb9ba35f03236936a43438d3c9dec150d197245 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index fa139c79d23e3ba42f114dde9d5d7529c31e0f3c..5d0f7c8e31c4c2ac454c66067daaa129c87db8fd 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 8b3580a201c6dc0abe92d1ea778b0394576b664a..86dd9b5d5a6a3c81fd9e478d62cba582ca9dc3fb 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 3884660183aed6409c9e6002a785cfcfd0ed06b6..6fa84b5f6b33221164c2f508258ed0b970838616 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index abb42b88d7eadcdf2f3b4e62820954622d044000..90181c8dedc21203d01d84cebd2baf8e6d4ef4dc 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 4c49ce268d3a09bb501110c71470bd7921241f54..c0a714f16689641df4f2dcc103143f74f2de97ea 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index f3f03d007ebb587cedb76578e1dee5e4341149e0..ac3d12b28419b9ee8d5827c34a606f13668d65a6 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index dbc408a8cf5c0bf3c89c6d5bdefc8364dab4e4a1..cfe982e60525c6f73cc4829157734dd2ca1baeee 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index cd91c569267a1abd7a0fc54a67cc98b3ce8f2199..7eab92e8e35c6f4e572bd6ceab1339ef69a4476e 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 82fa24060a5f728169e1aeb4b7ea7792d4af3655..0219a98a7b83ae71bac90be906ac2a74437f723b 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 279b16f0d4d6d885f573236d065e6a3782dfc04b..88e680ebd773b6832f7154d28f86d19b02c6f69b 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 0eec576e59a5e13dd8624b194b99b4da4d8b4d9f..ac484fcb0f09bb5c84fb0b7eba16f3f8cc14406e 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index fe340510a3ecb4059f01639d54e4f0b6c90cac67..4c2c4b5d5e81fb69a7c35ff7d5f5defa8133b900 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 34df7da3ab8c3fac3c4708fe913cae2d7a91ea15..615f4400cb11df1d048935797c81cbaf5af3218a 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 7b4dbdc8d9a1c5d0ba0a8da00c20615ee5c31f7b..d56969e8e83153c06fac4cc5684d2c01b0ec38c1 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 93723e455447595d9be11155b5a94844e167d373..567c2a68d62df3dac13c99290503f4ad61bacb35 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 6ca744151cdc947ab5a64e17ccf205d6970d4de9..3ac7df015cf550355a89936e57bc271cedc66b6c 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index f2225609d02139e1192d66ebe3d2c31afc6e6e90..d5cfe4cbef72dce210b91eaa2332c0eb68228539 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index e58466508c845fd4d041e692f546eae9da5301fa..a9255ab050198485dacc216d2595dcde780c03d1 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 7bd5bffcf45337b26226800431ee8dbf369c80ab..0c0df24e8abeac8cfbc0f19771f1412e7720dfa9 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 196774e5c739cf35831fcda9e2d52a27b1b1ba53..757faeb08840af35cb8859e6c6a8bb6c9a466fda 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 9092a0f9e761ab15fd4f1e3f4e8f190963ce50e1..278c2c6731d932b3ccf0c8c46c4c6e61727e5674 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 8fd598da5a4664af523c158cfa6d36eca79b3e05..69152a7a33660de42a7cb8948ad551b7017c2b25 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 225cdd3124c8483d08e3f9cc0bdd4ded62d808a1..baa799d4ca10a4a9484827e2377a19a6c6ef3b93 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 4c9b7f0fa9d15693873dd7fcfe7f065a34a06e68..6de9f33974d79e94cf43d773f97bce839b0c2e61 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index b2a0ee23b471f73753ac1d66fc6c936a65db31da..ffcc96a2953ca6b8930088ac202502662dd03528 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 8f2fc66b2be57ab84ee54b054cfd88631ac020f0..44f378e219b5dbad743c24c00e4aadfed99f2458 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 14de1189c622f0025b077b8adef1a1450244e5c3..e78a2cd20b4f22bb0e72f542c476e172907e8ffa 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index b4afb95a5b6fccca66b89dc54aba0817e54b66d8..a3c52499e54ce12f4032c80a8e29329d60269861 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 038314d4e85afd5ddc3b3347acc6fe5e12a2fb6f..83a0a4296af4fca4a18f0f4afdb0c842cc1b1102 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index eb10c871b1805cdf311588b655e5cf0fadf2f8d7..52b0a4a0152c28bcbd3a3604c6cf705dfbc03f30 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 6a1660ad255cd609bbb773d7164a10a1ce58d981..ed4974d5a74fb840862a2049ca13fea98f51b92f 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index eabf4c42fbd9819a19539fc51b1918c25e698a06..9f1c5db0dde4836ec27e2c4fa83e5e6c22add6a4 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 31bc1e51842cc79aab5e30d237c95d4d2a362416..090b21fbeeb842a0b10d4079ab589a11e74f23ce 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 39577ce286db9527de02640ab7778faa909e37c4..b88fc3394024481aa96c4e8d7e5478be6d983bf3 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index cd5988301174ccd5dd799447c6ed05080d0b08aa..53002951c98830a12aa3e5a1da2356e0b24b5e3c 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index f19f0ac949d918de9779e81193c15e1921ddbaf3..0244cda1d19c895bde0058cc861bebdc9f166e24 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index d022c5e68ab4e8e86e8e32762c5b1ae9866b4606..cba860520b9a927b4a10899a3dd9fb3d41a89462 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index a66d13a9dc2103df38cc63bd1135cd99e2570aaa..f0a13fafcbda7f89b65e0875900880435f792464 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 24e224ab9062b4aaa261a2d23fab6eee09cd9417..8f28b571d6d8162cdc63ccb849214e39a3de5537 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 8374143b8fa07ac587b37fa12f6f27c3db345f57..52c425d026d1a352cba28958920823c5071c90e3 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 686fd8d1d0507e071b364782cd5fdde245dbd137..da90dd309d894986a297c1ceb66f664d08cad1d2 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index b1f679bea9ada6fcb9f80be1de2b6415cd6bd368..ffb9c7fedb96a48bc43ba544368079fe20a863fd 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 5562e62dd9014aeb19ce1d56310229435836b05f..9307992072d2a0cace9891cda15ad4ad413b81b2 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 723f50b453aa7fb91746286bcbfd46f397b9abc8..d0c4e033bdd88ba5c53b0b0bf482a99ca5eee3c2 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 0f033f5fa3f13418c5f0d5e3a37899550818a560..62c8dcf5f0f70c66c95911f391e4f92038dc5889 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 35bcbe2af5f5b1d63c8a18c9229b1b0dc240a207..19b3ea23a160146ed7f069a7db24ed881f49770a 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 7dd4ba8c94ea15fcd4baf716a4c263808891b728..c6fa3cfbdb283391da2b077832a6c67da2bdf653 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index c1a1533f9e5b3084f2f8a6ce48bebe8f600affa2..3933231431dcdd5606bd6ca575cd39bb63dee813 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 5b092015a55281837ea64f902564c2eb6ba69ea2..16397fba4ddb08a5a0b654b6cf7ff3cc78f5b21e 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index d4718ffcdbf00ba6496ddcedfaa4ec704db3b645..466a3f338a870c9db89e6d47a431761791faf16c 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index ae2aaa141f62c85a3275af25bd6748565281e5ce..f1ac034e7d8788602155ca0128fc5213548c415d 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 4410a3421b6faad15b767ad83575689b2bea852d..090d9d90fc6d03536295140a4b5030711ac2ed28 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 6739c17ab5714aa1a4ccbf3c450af8bf3d536c8b..2d82e878bccc38c98f54e8bd3f9fbe90261ac9b5 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index e5bb2d735fd0ff8796361995c1280e6cab45d72d..2c80fb4a14c82671659da4ee099f703e74cd34a7 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 7a9dbe8312daadfb0a387283237ec6427cbe8c28..d32fddcfbcd5090a7400c3322d1dba73b6d6419c 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 7b38fdc5761575d7c15bc9e28445ce52fd788fb0..8facdd2330c4ed4be304b2c92df6f913426a4380 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 08833b6858c691566ad8d1e8b83b387bd9c032b6..9ac6c337bf3cb9e1270242e363561d64821c79bd 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index c1e5c151595c8a293727af75c29760f1106fc3ff..0a1108c3f7045ee2dc72299136860c28cc53475f 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 3f555332a1d0748c60067faa10acd28fc86187d0..4cb78c775cb64dbfd6e3b07fb8efd92ebe1f932a 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index aa644bb62b997b9a27cf69ca08a39dfe2adee831..9446f42b7056d00c61521e67d82f231428ee6c75 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 44ab8077cf3f54fb948ab217d8d3a11373bdbfc3..12e7fa05921fdbbfc143093420979d32e318c74b 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 2b20c15f66307029a1dd8cfa1a193dbc6d0c29f4..90915533388f9abbb19701ab5b67d1d8dbd0dfaa 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 5b61ae42c47488a413ff92dfc7b5e16693191c20..eae6d9e1748459461916e40c75bbdd07aad5a154 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 44bd6bad39a599ee422972ced16bfcb7dd114150..fdeda62cac98e1b117a52699292e2c30b02d2ae4 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 7d1adf048c5209df3e6783771615302e4d31e9fe..d6035a7c7a914044311debb5db7297ec3f1e1b08 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index bdf6edc5a8da644b4ced499d33d430397e29430c..46313de2ff534275fb3fcb0b2f5370a409b6d35e 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 090894c6fc9b5835d210e2758e5c95b1ebb1a976..3368620c0f00674a4dfbb83fa083c0073732ea14 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 452edaa7eb8ffc79a848a4ddf5d2a685be847ccc..5d50104e6572181d876901819e43a1c7d5872c0f 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 0dfb8e17d3bd2535f05a161fdb0728f29339a7c0..128e672fe768493295737b03de59c266304475e4 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 2b04d6c47fd001e6a11d6693ee4b6da7e5649dcd..4a22b324b2c5f5362b114da39d2b63951fa8486b 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index bdc35a75b259275c562a052d5d60af6289b5140d..359cc7669f1ad8c7222caf258c1eacc6d197839e 100644 (file)
@@ -1,6 +1,22 @@
+/*
+ * Javassist, a Java-bytecode translator toolkit.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License.  Alternatively, the contents of this file may be used under
+ * the terms of the GNU Lesser General Public License Version 2.1 or later.
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ */
+
 package javassist.compiler.ast;
 
 import javassist.compiler.CompileError;
+
 /**
  * Array initializer such as <code>{ 1, 2, 3 }</code>.
  */
index c11cc604dd6607a1cfc63ebe532c20b6532b4a1b..b6805fe8941aa8d28bb766498c79271d87ccc863 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index b1635dbef936a24f3431cbc134e1b5bbc5412065..b2f3ffac5db6d8edca5d19e5485e8e9b401fc8b7 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 88a3c762ba7a5c6ad2fc02d9fff12495a2fc0bde..32ef5dcc2fa58289126e4e302bffbac0999409e5 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 047e268d28ecdb7ec369a174961b17ba34b2fef5..a87a45d17f2f5308af71d130aa03b3266bb16a14 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 1894437e985e41dfbcb078a2c35a1e5cc1616b4d..2cdafba330a9553a5aa132eb5d99e5a3c2795f70 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 120510b5e68d790c7c16d87152a0fe22d0e443ab..65c746bf0eb17e4a03d840dfa9527dd788f6362f 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index d7ca53dc6009b41a31c4194cd8f1fd437dc99539..f4fb239508873335a55930b187610791b6f25824 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 549f3117f78dd69c6f57808f7be7684722653b19..665f0af8de2e1af8f0074211a50c33124a5d4f25 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index d143249d27efc8f024b7ef0f60e9f3d74e1d6e3a..344047011894fd565a61ecb1125fd373ad235cf3 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 80f42699cc4ddcfba07e6041ac1fde3009ebc3e2..d512c28fbc2111c16d4804effe0112995d0c1a1a 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 6c9b395c6d833be7ccc91babae8d48b0d48302f5..8e45189ed6f5669e1315807adee2429d81e14d86 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index ccd8574db2d28bfb953e0a723da77437807a3f99..0932609cc3d422f85442f5fd6f4670e6fbcb8d38 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 905bf6b4be36a97fc563179b541b479300289027..bc67a24e0b11408609e9c07189ee8f430afd049f 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 3ef44103b395e3d6140f78312aef80916481a728..2cbe3f1fa1105e1eb62796c206a3f0bc93cdf56e 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index b570ea0bb80eb7723bdf04820cb647acff767924..91a3fe2c150c5b40f7c80de9d12271c9d8ee64a1 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index be3ec5921bf7be44517dd24bd82e1ae38b0160fa..6f1757fc3879b0759413789b16effc2012e6a6dd 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 8abd66508c6e4ef1a80785df3bb61ab3cbe7cbad..a130dd2db586adc7a04a77e09200252c33332192 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 2bf1de0a680122fc9bab08edd306cd75d2d3cfd6..e841b1eb17156a428dec3479b3593defcb59f6e9 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index a35a13cbe8d009b3f10e7792a3bd77bf682bd8a9..f3c5d7170aa8aa8f21631b049dbae9c28b6296dc 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index f0c67bebb4fc991884862a25d0ddec8e4830bcfe..003c2b6a4e529183ecee25d09856568c88c90bdd 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 5c361d8d5277afc4cd908be5b07fbae07d36403b..ca7c5b0bacf9532878949c2eb2fb57b5f7b69cb8 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 5378dc6032c40428a949a34e1fa87f8b20c447df..b96cb8c94e3032bd33288a11b076b3260d73f473 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 49531e870c13429aa163e06ee3c4967c8b7840ff..dcbff3b7da25f31464bdd80aac776b95e1e243ae 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 6b389f9fb01cf6136a4334d3a08756c69524622f..c9f62488b3662aff3016c0cd90c023f1d70095a4 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index b8d68af34b26af3cdd4a05621b8ee17c56c72d23..b3e9adfd1b0aa5d5a415bef9ede69cc8172584ca 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 6c17e7b2f378c09bd7616dc98b7dbe96d3c931c6..c4347b7c05befe11cca45a3397090e579daa0e32 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 2970cd27a00e845b9e098c0643619c2b386bda90..ad490f88597bd0d3c8022ff7de79f953e0afb58d 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 78f4a42f91b6fb5b97e10692f9d5d8c4803bd418..d749ad58592625833a101fad198dd040f229405a 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 0644e507d9e23afed57a927fb4766692cd2c16cc..82baade62694b19b735e7da10cba587e5fa435fb 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 5625e1d8a751a5d646a5c873348e3ee734d6d34d..b7440ba7ac2e5ec23ed75a4e70d4281edaa268ef 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index df3b01e0909850f56c47109ea2fbb3f36c863a17..3a23181ed01099e3e07a5113a7271086d8e356d6 100644 (file)
@@ -1,3 +1,18 @@
+/*
+ * Javassist, a Java-bytecode translator toolkit.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License.  Alternatively, the contents of this file may be used under
+ * the terms of the GNU Lesser General Public License Version 2.1 or later.
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ */
+
 package javassist.expr;
 
 import javassist.CtClass;
index d0a42b7405e305e3ed07e24b5c4082abd4ff13b4..c6cf78ebceaeff95330f5bf23ada8e2eb8a5e916 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index c18e426b1b2e40a583d0043c486c8fdd598019e3..a713dde39233636495c5caed579ce9deb1ed3590 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 341159725dbcc510f763387d9360a02bb18eed7b..9339d1c516e7a85faf552139c2c5104211947f4f 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index c949dc0ee6026a174a2cbc801a66c2c012a26c01..78a5688de6f04b0f7160f8938827dece75c63591 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 16db1857af098a41b83e19a8aea113a868f7e7e5..0f8ebdf7dd07b3e04000a3538a7582e742742d81 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 9fd29e2a6235967e64166724d0704526e0e4c3ca..2c385b1b09a9a9a384c9560837908783571a4ce6 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 1181e6fc4cb938cb5fb6a739d434de661ce19b09..c01d0d6d62a928323e4072b2fc923a282c1ff321 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 2f976d82d4e640574a70d8edd97ca1cfb1ca4341..a75a0a5ca99e4ec399176cced831437ecc61ab3f 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 13a44657d1641403ca8eb70c27adee387da896c9..28bb43542a65742d9c6550086843f67a6fb8ab91 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 36db6a1f2795e8b7bc8a1a009236ec4ac1892146..4a9b4d6228046162623c905d8186e208784a7d6d 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 0e57cdf4e5a44542f54359177b3895fee2e81458..9d861c1b1d699a598a94138aa89ab3eb004905da 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index b7bdb03ec493197744a6476eaba489efac53cbc3..5672c2f52199e3bdc05f851385e50a588e1c74f4 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 8f44b4ba0b2711164f160075ea1d65d849cca16d..a581249f7e3a2333c0e2809785d839238f7e3496 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index efa141115b6b136be37af4739c02e0da260190d6..efc21d6f024789c6a9203f584cbff0d75429bd41 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index d283d6d70fad7f0bb3d34cbf2aa1d055c9a70063..070594a025462c4fa44b8f28a6909972bd43872d 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 30c448b3291d1977b90a753d8b4df11721c4608a..1e64085823fd2175457fce4860045e0c9f3c228a 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index d0a645cca8e13a86be65241f16d4234dffa92834..d99bc8aaa139fe6917636fa28e644cae8b322fa1 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 7e1fb943312796197ea43a10ecb5dc5438c77424..a32c0a8bb71365738846cae451f485895c68b293 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 36189edf63aa649c66c837fc4b49bafd75a59de8..ba50f112bbba59e3f8dc7f44b151ef0addeca03d 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index db45cad9f7dfe3498202271bddaf81485c1d00d1..afae616e20eeea88036a3ef93bc01f230dae6924 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index e89b5398a1464c8e9826dc7d061a9fdc5d06609b..801fff861c048abe1ecacb808183f3541a13b105 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 06ce2ccfe0363a92ef34ea6531d275bd646452f5..d5f008bc68b19991caa82ba91452f325f0b16320 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 4e70236a7c9fd90b3c877941d08c2c8081f580f8..9d5b13cbbd1cbc1b5875c67d5d8b55cd2419c40b 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 5056e24cf554faad8cb688dc4181167627a6fbef..c0558026808bc9cecef539a70cd665789116e6fa 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 75f5aa60a57484b5e951ed3093075836f3668538..49160fd10ae911f916461af71d19bba807ec445a 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index e54a32573b90afc2a4c885a122779e3051c882ca..5176661e89efdaf22bba397e92eec6ea60800a3b 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 1512b87f59d64993384ae4d9444f68cede9c31d0..70ff83a6102cef2e250c011bfd75003af875dae8 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 27ebe71e83b7c5fca27f545febc5c57656030f06..0013bac46555f0387376eb93060b176cd8aa117e 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index edbf349f9c97b72a14f3aaa6b98e3a4245fa17d5..51a271ccaf789c184603febde374fd302f7ad27c 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index a65b908d890739ab29c9ab16267ad1255fde2a43..0bf71a627b791e9ab9b92eef2d1f3abdd9ecd953 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 7681bd6d678884007155ffad2fc5f3c86ef4801e..0b6b4dbe721af18b9de97a4e83cf0ca16d099549 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 606ce997f0090eacb7fcd9aee38538f81318ffc8..52ff76ec97b7b7aa355e39a43788962d56b0b54d 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 6e7374061528bd4d3f55d3deba53c8851a3ed3dd..063bb96fdca197ca758fb4e3bd2877da07103e57 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index e580feca3d11e7aa9e530c99d07b7f07ab92a11c..769c88c5bfb1e8b338274a973634dbd4374fef22 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 07abe7a07ce5028e2cb9eba286d4d4d3d6c87c80..ef25891261b51afee209deb1e87244ff6da34e91 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 01bd6bf13a7d47a2612a08cda72588c17a7f7683..b00b9a93529bb4e7e8b899b2934f4fae0e2c9c6d 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 67f9e409ea89ee3f8a4d341e2501920360a63305..5b9ce16739fc2097eb7e2b5e2319dbcef388a24c 100644 (file)
@@ -1,30 +1,30 @@
-/*\r
- * Javassist, a Java-bytecode translator toolkit.\r
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.\r
- *\r
- * The contents of this file are subject to the Mozilla Public License Version\r
- * 1.1 (the "License"); you may not use this file except in compliance with\r
- * the License.  Alternatively, the contents of this file may be used under\r
- * the terms of the GNU Lesser General Public License Version 2.1 or later.\r
- *\r
- * Software distributed under the License is distributed on an "AS IS" basis,\r
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License\r
- * for the specific language governing rights and limitations under the\r
- * License.\r
- */\r
-\r
-package javassist.util.proxy;\r
-\r
-import java.lang.reflect.Method;\r
-\r
-/**\r
- * Selector of the methods implemented by a handler.\r
- *\r
- * @see ProxyFactory#setFilter(MethodFilter)\r
- */\r
-public interface MethodFilter {\r
-    /**\r
-     * Returns true if the given method is implemented by a handler.\r
-     */\r
-    boolean isHandled(Method m);\r
-}\r
+/*
+ * Javassist, a Java-bytecode translator toolkit.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License.  Alternatively, the contents of this file may be used under
+ * the terms of the GNU Lesser General Public License Version 2.1 or later.
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ */
+
+package javassist.util.proxy;
+
+import java.lang.reflect.Method;
+
+/**
+ * Selector of the methods implemented by a handler.
+ *
+ * @see ProxyFactory#setFilter(MethodFilter)
+ */
+public interface MethodFilter {
+    /**
+     * Returns true if the given method is implemented by a handler.
+     */
+    boolean isHandled(Method m);
+}
index 7bd28ba05afad6d077814055be1458f114a9fd00..7c398fcced04f423fd3bd58baebe77e43e9fedf2 100644 (file)
@@ -1,48 +1,48 @@
-/*\r
- * Javassist, a Java-bytecode translator toolkit.\r
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.\r
- *\r
- * The contents of this file are subject to the Mozilla Public License Version\r
- * 1.1 (the "License"); you may not use this file except in compliance with\r
- * the License.  Alternatively, the contents of this file may be used under\r
- * the terms of the GNU Lesser General Public License Version 2.1 or later.\r
- *\r
- * Software distributed under the License is distributed on an "AS IS" basis,\r
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License\r
- * for the specific language governing rights and limitations under the\r
- * License.\r
- */\r
-\r
-package javassist.util.proxy;\r
-\r
-import java.lang.reflect.Method;\r
-\r
-/**\r
- * The interface implemented by the invocation handler of a proxy\r
- * instance.\r
- *\r
- * @see ProxyFactory#setHandler(MethodHandler)\r
- */\r
-public interface MethodHandler {\r
-    /**\r
-     * Is called when a method is invoked on a proxy instance associated\r
-     * with this handler.  This method must process that method invocation.\r
-     *\r
-     * @param self          the proxy instance.\r
-     * @param thisMethod    the overridden method declared in the super\r
-     *                      class or interface.\r
-     * @param proceed       the forwarder method for invoking the overridden \r
-     *                      method.  It is null if the overridden mehtod is\r
-     *                      abstract or declared in the interface.\r
-     * @param args          an array of objects containing the values of\r
-     *                      the arguments passed in the method invocation\r
-     *                      on the proxy instance.  If a parameter type is\r
-     *                      a primitive type, the type of the array element\r
-     *                      is a wrapper class.\r
-     * @return              the resulting value of the method invocation.\r
-     *\r
-     * @throws Exception    if the method invocation fails.\r
-     */\r
-    Object invoke(Object self, Method thisMethod, Method proceed,\r
-                  Object[] args) throws Exception;\r
-}\r
+/*
+ * Javassist, a Java-bytecode translator toolkit.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License.  Alternatively, the contents of this file may be used under
+ * the terms of the GNU Lesser General Public License Version 2.1 or later.
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ */
+
+package javassist.util.proxy;
+
+import java.lang.reflect.Method;
+
+/**
+ * The interface implemented by the invocation handler of a proxy
+ * instance.
+ *
+ * @see ProxyFactory#setHandler(MethodHandler)
+ */
+public interface MethodHandler {
+    /**
+     * Is called when a method is invoked on a proxy instance associated
+     * with this handler.  This method must process that method invocation.
+     *
+     * @param self          the proxy instance.
+     * @param thisMethod    the overridden method declared in the super
+     *                      class or interface.
+     * @param proceed       the forwarder method for invoking the overridden 
+     *                      method.  It is null if the overridden mehtod is
+     *                      abstract or declared in the interface.
+     * @param args          an array of objects containing the values of
+     *                      the arguments passed in the method invocation
+     *                      on the proxy instance.  If a parameter type is
+     *                      a primitive type, the type of the array element
+     *                      is a wrapper class.
+     * @return              the resulting value of the method invocation.
+     *
+     * @throws Exception    if the method invocation fails.
+     */
+    Object invoke(Object self, Method thisMethod, Method proceed,
+                  Object[] args) throws Exception;
+}
index 356c23bf338a97e41690119667a9c77e5bd1a48c..ecdd170f50c799ff372e7b7ebe9ba69813763ea6 100644 (file)
-/*\r
- * Javassist, a Java-bytecode translator toolkit.\r
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.\r
- *\r
- * The contents of this file are subject to the Mozilla Public License Version\r
- * 1.1 (the "License"); you may not use this file except in compliance with\r
- * the License.  Alternatively, the contents of this file may be used under\r
- * the terms of the GNU Lesser General Public License Version 2.1 or later.\r
- *\r
- * Software distributed under the License is distributed on an "AS IS" basis,\r
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License\r
- * for the specific language governing rights and limitations under the\r
- * License.\r
- */\r
-\r
-package javassist.util.proxy;\r
-\r
-import java.lang.reflect.Field;\r
-import java.lang.reflect.Method;\r
-import java.lang.reflect.Constructor;\r
-import java.lang.reflect.Member;\r
-import java.lang.reflect.Modifier;\r
-import java.util.HashMap;\r
-import java.util.Iterator;\r
-import java.util.Map;\r
-import java.util.Set;\r
-\r
-import javassist.CannotCompileException;\r
-import javassist.bytecode.*;\r
-\r
-/**\r
- * Factory of dynamic proxy classes.\r
- *\r
- * <p>This factory generates a class that extends the given super class and implements\r
- * the given interfaces.  The calls of the methods inherited from the super class are\r
- * forwarded and then <code>invoke()</code> is called on the method handler\r
- * associated with the generated class.  The calls of the methods from the interfaces\r
- * are also forwarded to the method handler.\r
- *\r
- * <p>For example, if the following code is executed,\r
- * \r
- * <ul><pre>\r
- * ProxyFactory f = new ProxyFactory();\r
- * f.setSuperclass(Foo.class);\r
- * MethodHandler mi = new MethodHandler() {\r
- *     public Object invoke(Object self, Method m, Method proceed,\r
- *                          Object[] args) throws Exception {\r
- *         System.out.println("Name: " + m.getName());\r
- *         proceed.invoke(self, args);  // execute the original method.\r
- *     }\r
- * };\r
- * f.setHandler(mi);\r
- * Class c = f.createClass();\r
- * Foo foo = (Foo)c.newInstance();\r
- * </pre></ul>\r
- *\r
- * <p>Then, the following method call will be forwarded to MethodHandler\r
- * <code>mi</code> and prints a message before executing the originally called method\r
- * <code>bar()</code> in <code>Foo</code>.\r
- *\r
- * <ul><pre>\r
- * foo.bar();\r
- * </pre></ul>\r
- *\r
- * <p>To change the method handler during runtime,\r
- * execute the following code:\r
- *\r
- * <ul><pre>\r
- * MethodHandler mi2 = ... ;    // another handler\r
- * ((ProxyObject)foo).setHandler(mi2);\r
- * </pre></ul>\r
- *\r
- * <p>Here is an example of method handler.  It does not execute\r
- * anything except invoking the original method:\r
- *\r
- * <ul><pre>\r
- * class SimpleHandler implements MethodHandler {\r
- *     public Object invoke(Object self, Method m,\r
- *                          Method proceed, Object[] args) throws Exception {\r
- *         return proceed.invoke(self, args);\r
- *     }\r
- * }\r
- * </pre></ul>\r
- *\r
- * @see MethodHandler\r
- * @since 3.1\r
- */\r
-public class ProxyFactory {\r
-    private Class superClass;\r
-    private Class[] interfaces;\r
-    private MethodFilter methodFilter;\r
-    private MethodHandler handler;\r
-    private Class thisClass;\r
-\r
-    /**\r
-     * If the value of this variable is not null, the class file of\r
-     * the generated proxy class is written under the directory specified\r
-     * by this variable.  For example, if the value is \r
-     * <code>"."</code>, then the class file is written under the current\r
-     * directory.  This method is for debugging.\r
-     *\r
-     * <p>The default value is null.\r
-     */\r
-    public String writeDirectory;\r
-\r
-    private static final Class OBJECT_TYPE = Object.class;\r
-\r
-    private static final String HOLDER = "_methods_";\r
-    private static final String HOLDER_TYPE = "[Ljava/lang/reflect/Method;";\r
-    private static final String HANDLER = "handler";\r
-    private static final String DEFAULT_INTERCEPTOR = "default_interceptor";\r
-    private static final String HANDLER_TYPE\r
-        = 'L' + MethodHandler.class.getName().replace('.', '/') + ';';\r
-    private static final String HANDLER_SETTER = "setHandler";\r
-    private static final String HANDLER_SETTER_TYPE = "(" + HANDLER_TYPE + ")V";\r
-\r
-    /**\r
-     * Constructs a factory of proxy class.\r
-     */\r
-    public ProxyFactory() {\r
-        superClass = null;\r
-        interfaces = null;\r
-        methodFilter = null;\r
-        handler = new MethodHandler() {\r
-            public Object invoke(Object self, Method m,\r
-                                 Method proceed, Object[] args)\r
-                throws Exception\r
-            {\r
-                return proceed.invoke(self, args);\r
-            }\r
-        };\r
-        thisClass = null;\r
-        writeDirectory = null;\r
-    }\r
-\r
-    /**\r
-     * Sets the super class of a proxy class.\r
-     */\r
-    public void setSuperclass(Class clazz) {\r
-        superClass = clazz;\r
-    }\r
-\r
-    /**\r
-     * Sets the interfaces of a proxy class.\r
-     */\r
-    public void setInterfaces(Class[] ifs) {\r
-        interfaces = ifs;\r
-    }\r
-\r
-    /**\r
-     * Sets a filter that selects the methods that will be controlled by a handler.\r
-     */\r
-    public void setFilter(MethodFilter mf) {\r
-        methodFilter = mf;\r
-    }\r
-\r
-    /**\r
-     * Generates a proxy class.\r
-     */\r
-    public Class createClass() {\r
-        if (thisClass == null)\r
-            try {\r
-                ClassFile cf = make();\r
-                ClassLoader cl = getClassLoader();\r
-                if (writeDirectory != null)\r
-                    FactoryHelper.writeFile(cf, writeDirectory);\r
-\r
-                thisClass = FactoryHelper.toClass(cf, cl);\r
-                setHandler();\r
-            }\r
-            catch (CannotCompileException e) {\r
-                throw new RuntimeException(e.getMessage(), e);\r
-            }\r
-\r
-        return thisClass;\r
-    }\r
-\r
-    protected ClassLoader getClassLoader() {\r
-        if (superClass != null && !superClass.getName().equals("java.lang.Object"))\r
-            return superClass.getClassLoader();\r
-        else if (interfaces != null && interfaces.length > 0)\r
-            return interfaces[0].getClassLoader();\r
-        else\r
-            return this.getClass().getClassLoader();\r
-            // return Thread.currentThread().getContextClassLoader();\r
-    }\r
-\r
-    /**\r
-     * Sets the default invocation handler.  This invocation handler is shared\r
-     * among all the instances of a proxy class unless another is explicitly\r
-     * specified.\r
-     */\r
-    public void setHandler(MethodHandler mi) {\r
-        handler = mi;\r
-        setHandler();\r
-    }\r
-\r
-    private void setHandler() {\r
-        if (thisClass != null && handler != null)\r
-            try {\r
-                Field f = thisClass.getField(DEFAULT_INTERCEPTOR);\r
-                f.setAccessible(true);\r
-                f.set(null, handler);\r
-                f.setAccessible(false);\r
-            }\r
-            catch (Exception e) {\r
-                throw new RuntimeException(e);\r
-            }\r
-    }\r
-\r
-    private static int counter = 0;\r
-\r
-    private ClassFile make() throws CannotCompileException {\r
-        String superName, classname;\r
-        if (interfaces == null)\r
-            interfaces = new Class[0];\r
-\r
-        if (superClass == null) {\r
-            superClass = OBJECT_TYPE;\r
-            superName = superClass.getName();\r
-            classname = interfaces.length == 0 ? superName\r
-                                               : interfaces[0].getName(); \r
-        }\r
-        else {\r
-            superName = superClass.getName();\r
-            classname = superName;\r
-        }\r
-\r
-        if (Modifier.isFinal(superClass.getModifiers()))\r
-            throw new CannotCompileException(superName + " is final");\r
-\r
-        // generate a proxy name.\r
-        classname = classname + "_$$_javassist_" + counter++;\r
-        if (classname.startsWith("java."))\r
-            classname = "org.javassist.tmp." + classname;\r
-\r
-        ClassFile cf = new ClassFile(false, classname, superName);\r
-        cf.setAccessFlags(AccessFlag.PUBLIC);\r
-        setInterfaces(cf, interfaces);\r
-        ConstPool pool = cf.getConstPool();\r
-        FieldInfo finfo = new FieldInfo(pool, DEFAULT_INTERCEPTOR, HANDLER_TYPE);\r
-        finfo.setAccessFlags(AccessFlag.PUBLIC | AccessFlag.STATIC);\r
-        cf.addField(finfo);\r
-\r
-        FieldInfo finfo2 = new FieldInfo(pool, HANDLER, HANDLER_TYPE);\r
-        finfo2.setAccessFlags(AccessFlag.PRIVATE);\r
-        cf.addField(finfo2);\r
-\r
-        HashMap allMethods = getMethods(superClass, interfaces);\r
-        int size = allMethods.size();\r
-        makeConstructors(classname, cf, pool, classname);\r
-        int s = overrideMethods(cf, pool, classname, allMethods);\r
-        addMethodsHolder(cf, pool, classname, s);\r
-        addSetter(classname, cf, pool);\r
-\r
-        thisClass = null;          \r
-        return cf;\r
-    }\r
-\r
-    private static void setInterfaces(ClassFile cf, Class[] interfaces) {\r
-        String setterIntf = ProxyObject.class.getName();\r
-        String[] list;\r
-        if (interfaces == null || interfaces.length == 0)\r
-            list = new String[] { setterIntf };\r
-        else {\r
-            list = new String[interfaces.length + 1];\r
-            for (int i = 0; i < interfaces.length; i++)\r
-                list[i] = interfaces[i].getName();\r
-\r
-            list[interfaces.length] = setterIntf;\r
-        }\r
-\r
-        cf.setInterfaces(list);\r
-    }\r
-\r
-    private static void addMethodsHolder(ClassFile cf, ConstPool cp,\r
-                                         String classname, int size)\r
-        throws CannotCompileException\r
-    {\r
-        FieldInfo finfo = new FieldInfo(cp, HOLDER, HOLDER_TYPE);\r
-        finfo.setAccessFlags(AccessFlag.PRIVATE | AccessFlag.STATIC);\r
-        cf.addField(finfo);\r
-        MethodInfo minfo = new MethodInfo(cp, "<clinit>", "()V");\r
-        Bytecode code = new Bytecode(cp, 0, 0);\r
-        code.addIconst(size * 2);\r
-        code.addAnewarray("java.lang.reflect.Method");\r
-        code.addPutstatic(classname, HOLDER, HOLDER_TYPE);\r
-        code.addOpcode(Bytecode.RETURN);\r
-        minfo.setCodeAttribute(code.toCodeAttribute());\r
-        cf.addMethod(minfo);\r
-    }\r
-\r
-    private static void addSetter(String classname, ClassFile cf, ConstPool cp)\r
-        throws CannotCompileException\r
-    {\r
-        MethodInfo minfo = new MethodInfo(cp, HANDLER_SETTER,\r
-                                          HANDLER_SETTER_TYPE);\r
-        minfo.setAccessFlags(AccessFlag.PUBLIC);\r
-        Bytecode code = new Bytecode(cp, 2, 2);\r
-        code.addAload(0);\r
-        code.addAload(1);\r
-        code.addPutfield(classname, HANDLER, HANDLER_TYPE);\r
-        code.addOpcode(Bytecode.RETURN);\r
-        minfo.setCodeAttribute(code.toCodeAttribute());\r
-        cf.addMethod(minfo);\r
-    }\r
-\r
-    private int overrideMethods(ClassFile cf, ConstPool cp, String className,\r
-                                HashMap allMethods)\r
-        throws CannotCompileException\r
-    {\r
-        String prefix = makeUniqueName("_d", allMethods);\r
-        Set entries = allMethods.entrySet();\r
-        Iterator it = entries.iterator();\r
-        int index = 0;\r
-        while (it.hasNext()) {\r
-            Map.Entry e = (Map.Entry)it.next();\r
-            String key = (String)e.getKey();\r
-            Method meth = (Method)e.getValue();\r
-            int mod = meth.getModifiers();\r
-            if (!Modifier.isFinal(mod) && !Modifier.isStatic(mod)\r
-                    && isVisible(mod, className, meth))\r
-                if (methodFilter == null || methodFilter.isHandled(meth))\r
-                    override(className, meth, prefix, index++,\r
-                             keyToDesc(key), cf, cp);\r
-        }\r
-\r
-        return index;\r
-    }\r
-\r
-    private void override(String thisClassname, Method meth, String prefix,\r
-                          int index, String desc, ClassFile cf, ConstPool cp)\r
-        throws CannotCompileException\r
-    {\r
-        Class declClass = meth.getDeclaringClass();\r
-        String delegatorName = prefix + index + meth.getName();\r
-        if (Modifier.isAbstract(meth.getModifiers()))\r
-            delegatorName = null;\r
-        else {\r
-            MethodInfo delegator\r
-                = makeDelegator(meth, desc, cp, declClass, delegatorName);\r
-            cf.addMethod(delegator);\r
-        }\r
-\r
-        MethodInfo forwarder\r
-            = makeForwarder(thisClassname, meth, desc, cp, declClass,\r
-                            delegatorName, index);\r
-        cf.addMethod(forwarder);\r
-    }\r
-\r
-    private void makeConstructors(String thisClassName, ClassFile cf,\r
-            ConstPool cp, String classname) throws CannotCompileException\r
-    {\r
-        Constructor[] cons = superClass.getDeclaredConstructors();\r
-        for (int i = 0; i < cons.length; i++) {\r
-            Constructor c = cons[i];\r
-            int mod = c.getModifiers();\r
-            if (!Modifier.isFinal(mod) && !Modifier.isPrivate(mod)\r
-                    && isVisible(mod, classname, c)) {\r
-                MethodInfo m = makeConstructor(thisClassName, c, cp, superClass);\r
-                cf.addMethod(m);\r
-            }\r
-        }\r
-    }\r
-\r
-    private static String makeUniqueName(String name, HashMap hash) {\r
-        Set keys = hash.keySet();\r
-        if (makeUniqueName0(name, keys.iterator()))\r
-            return name;\r
-\r
-        for (int i = 100; i < 999; i++) {\r
-            String s = name + i;\r
-            if (makeUniqueName0(s, keys.iterator()))\r
-                return s;\r
-        }\r
-\r
-        throw new RuntimeException("cannot make a unique method name");\r
-    }\r
-\r
-    private static boolean makeUniqueName0(String name, Iterator it) {\r
-        while (it.hasNext()) {\r
-            String key = (String)it.next();\r
-            if (key.startsWith(name))\r
-                return false;\r
-        }\r
-\r
-        return true;\r
-    }\r
-\r
-    /**\r
-     * Returns true if the method is visible from the class.\r
-     *\r
-     * @param mod       the modifiers of the method. \r
-     */\r
-    private static boolean isVisible(int mod, String from, Member meth) {\r
-        if ((mod & Modifier.PRIVATE) != 0)\r
-            return false;\r
-        else if ((mod & (Modifier.PUBLIC | Modifier.PROTECTED)) != 0)\r
-            return true;\r
-        else {\r
-            String p = getPackageName(from);\r
-            String q = getPackageName(meth.getDeclaringClass().getName());\r
-            if (p == null)\r
-                return q == null;\r
-            else\r
-                return p.equals(q);\r
-        }\r
-    }\r
-\r
-    private static String getPackageName(String name) {\r
-        int i = name.lastIndexOf('.');\r
-        if (i < 0)\r
-            return null;\r
-        else\r
-            return name.substring(0, i);\r
-    }\r
-\r
-    private static HashMap getMethods(Class superClass, Class[] interfaceTypes) {\r
-        HashMap hash = new HashMap();\r
-        for (int i = 0; i < interfaceTypes.length; i++)\r
-            getMethods(hash, interfaceTypes[i]);\r
-\r
-        getMethods(hash, superClass);\r
-        return hash;\r
-    }\r
-\r
-    private static void getMethods(HashMap hash, Class clazz) {\r
-        Class[] ifs = clazz.getInterfaces();\r
-        for (int i = 0; i < ifs.length; i++)\r
-            getMethods(hash, ifs[i]);\r
-\r
-        Class parent = clazz.getSuperclass();\r
-        if (parent != null)\r
-            getMethods(hash, parent);\r
-\r
-        Method[] methods = clazz.getDeclaredMethods();\r
-        for (int i = 0; i < methods.length; i++)\r
-            if (!Modifier.isPrivate(methods[i].getModifiers())) {\r
-                Method m = methods[i];\r
-                String key = m.getName() + ':' + RuntimeSupport.makeDescriptor(m);\r
-                hash.put(key, methods[i]);\r
-            }\r
-    }\r
-\r
-    private static String keyToDesc(String key) {\r
-        return key.substring(key.indexOf(':') + 1);\r
-    }\r
-\r
-    private static MethodInfo makeConstructor(String thisClassName, Constructor cons,\r
-                                              ConstPool cp, Class superClass) {\r
-        String desc = RuntimeSupport.makeDescriptor(cons.getParameterTypes(),\r
-                                                    Void.TYPE);\r
-        MethodInfo minfo = new MethodInfo(cp, "<init>", desc);\r
-        minfo.setAccessFlags(Modifier.PUBLIC);      // cons.getModifiers() & ~Modifier.NATIVE\r
-        setThrows(minfo, cp, cons.getExceptionTypes());\r
-        Bytecode code = new Bytecode(cp, 0, 0);\r
-        code.addAload(0);\r
-        code.addGetstatic(thisClassName, DEFAULT_INTERCEPTOR, HANDLER_TYPE);\r
-        code.addPutfield(thisClassName, HANDLER, HANDLER_TYPE);\r
-        code.addAload(0);\r
-        int s = addLoadParameters(code, cons.getParameterTypes(), 1);\r
-        code.addInvokespecial(superClass.getName(), "<init>", desc);\r
-        code.addOpcode(Opcode.RETURN);\r
-        code.setMaxLocals(++s);\r
-        minfo.setCodeAttribute(code.toCodeAttribute());\r
-        return minfo;\r
-    }\r
-\r
-    private static MethodInfo makeDelegator(Method meth, String desc,\r
-                ConstPool cp, Class declClass, String delegatorName) {\r
-        MethodInfo delegator = new MethodInfo(cp, delegatorName, desc);\r
-        delegator.setAccessFlags(Modifier.FINAL | Modifier.PUBLIC\r
-                | (meth.getModifiers() & ~(Modifier.PRIVATE\r
-                                           | Modifier.PROTECTED\r
-                                           | Modifier.ABSTRACT\r
-                                           | Modifier.NATIVE\r
-                                           | Modifier.SYNCHRONIZED)));\r
-        setThrows(delegator, cp, meth);\r
-        Bytecode code = new Bytecode(cp, 0, 0);\r
-        code.addAload(0);\r
-        int s = addLoadParameters(code, meth.getParameterTypes(), 1);\r
-        code.addInvokespecial(declClass.getName(), meth.getName(), desc);\r
-        addReturn(code, meth.getReturnType());\r
-        code.setMaxLocals(++s);\r
-        delegator.setCodeAttribute(code.toCodeAttribute());\r
-        return delegator;\r
-    }\r
-\r
-    /**\r
-     * @param delegatorName     null if the original method is abstract.\r
-     */\r
-    private static MethodInfo makeForwarder(String thisClassName,\r
-                    Method meth, String desc, ConstPool cp,\r
-                    Class declClass, String delegatorName, int index) {\r
-        MethodInfo forwarder = new MethodInfo(cp, meth.getName(), desc);\r
-        forwarder.setAccessFlags(Modifier.FINAL\r
-                    | (meth.getModifiers() & ~(Modifier.ABSTRACT\r
-                                               | Modifier.NATIVE\r
-                                               | Modifier.SYNCHRONIZED)));\r
-        setThrows(forwarder, cp, meth);\r
-        int args = Descriptor.paramSize(desc);\r
-        Bytecode code = new Bytecode(cp, 0, args + 2);\r
-        /*\r
-         * if (methods[index * 2] == null) {\r
-         *   methods[index * 2]\r
-         *     = RuntimeSupport.findMethod(this, <overridden name>, <desc>);\r
-         *   methods[index * 2 + 1]\r
-         *     = RuntimeSupport.findMethod(this, <delegator name>, <desc>);\r
-         *     or = null // the original method is abstract.\r
-         * }\r
-         * return ($r)handler.invoke(this, methods[index * 2],\r
-         *                methods[index * 2 + 1], $args);\r
-         */\r
-        int origIndex = index * 2;\r
-        int delIndex = index * 2 + 1;\r
-        int arrayVar = args + 1;\r
-        code.addGetstatic(thisClassName, HOLDER, HOLDER_TYPE);\r
-        code.addAstore(arrayVar);\r
-        code.addAload(arrayVar);\r
-        code.addIconst(origIndex);\r
-        code.addOpcode(Opcode.AALOAD);\r
-        code.addOpcode(Opcode.IFNONNULL);\r
-        int pc = code.currentPc();\r
-        code.addIndex(0);\r
-\r
-        callFindMethod(code, "findSuperMethod", arrayVar, origIndex, meth.getName(), desc);\r
-        callFindMethod(code, "findMethod", arrayVar, delIndex, delegatorName, desc);\r
-\r
-        code.write16bit(pc, code.currentPc() - pc + 1);\r
-        code.addAload(0);\r
-        code.addGetfield(thisClassName, HANDLER, HANDLER_TYPE);\r
-        code.addAload(0);\r
-\r
-        code.addAload(arrayVar);\r
-        code.addIconst(origIndex);\r
-        code.addOpcode(Opcode.AALOAD);\r
-\r
-        code.addAload(arrayVar);\r
-        code.addIconst(delIndex);\r
-        code.addOpcode(Opcode.AALOAD);\r
-\r
-        makeParameterList(code, meth.getParameterTypes());\r
-        code.addInvokeinterface(MethodHandler.class.getName(), "invoke",\r
-            "(Ljava/lang/Object;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;",\r
-            5);\r
-        Class retType = meth.getReturnType();\r
-        addUnwrapper(code, retType);\r
-        addReturn(code, retType);\r
-\r
-        forwarder.setCodeAttribute(code.toCodeAttribute());\r
-        return forwarder;\r
-    }\r
-\r
-    private static void setThrows(MethodInfo minfo, ConstPool cp, Method orig) {\r
-        Class[] exceptions = orig.getExceptionTypes();\r
-        setThrows(minfo, cp, exceptions);\r
-    }\r
-\r
-    private static void setThrows(MethodInfo minfo, ConstPool cp,\r
-                                  Class[] exceptions) {\r
-        if (exceptions.length == 0)\r
-            return;\r
-\r
-        String[] list = new String[exceptions.length];\r
-        for (int i = 0; i < exceptions.length; i++)\r
-            list[i] = exceptions[i].getName();\r
-\r
-        ExceptionsAttribute ea = new ExceptionsAttribute(cp);\r
-        ea.setExceptions(list);\r
-        minfo.setExceptionsAttribute(ea);\r
-    }\r
-\r
-    private static int addLoadParameters(Bytecode code, Class[] params,\r
-                                         int offset) {\r
-        int stacksize = 0;\r
-        int n = params.length;\r
-        for (int i = 0; i < n; ++i)\r
-            stacksize += addLoad(code, stacksize + offset, params[i]);\r
-\r
-        return stacksize;\r
-    }\r
-\r
-    private static int addLoad(Bytecode code, int n, Class type) {\r
-        if (type.isPrimitive()) {\r
-            if (type == Long.TYPE) {\r
-                code.addLload(n);\r
-                return 2;\r
-            }\r
-            else if (type == Float.TYPE)\r
-                code.addFload(n);\r
-            else if (type == Double.TYPE) {\r
-                code.addDload(n);\r
-                return 2;\r
-            }\r
-            else\r
-                code.addIload(n);\r
-        }\r
-        else\r
-            code.addAload(n);\r
-\r
-        return 1;\r
-    }\r
-\r
-    private static int addReturn(Bytecode code, Class type) {\r
-        if (type.isPrimitive()) {\r
-            if (type == Long.TYPE) {\r
-                code.addOpcode(Opcode.LRETURN);\r
-                return 2;\r
-            }\r
-            else if (type == Float.TYPE)\r
-                code.addOpcode(Opcode.FRETURN);\r
-            else if (type == Double.TYPE) {\r
-                code.addOpcode(Opcode.DRETURN);\r
-                return 2;\r
-            }\r
-            else if (type == Void.TYPE) {\r
-                code.addOpcode(Opcode.RETURN);\r
-                return 0;\r
-            }\r
-            else\r
-                code.addOpcode(Opcode.IRETURN);\r
-        }\r
-        else\r
-            code.addOpcode(Opcode.ARETURN);\r
-\r
-        return 1;\r
-    }\r
-\r
-    private static void makeParameterList(Bytecode code, Class[] params) {\r
-        int regno = 1;\r
-        int n = params.length;\r
-        code.addIconst(n);\r
-        code.addAnewarray("java/lang/Object");\r
-        for (int i = 0; i < n; i++) {\r
-            code.addOpcode(Opcode.DUP);\r
-            code.addIconst(i);\r
-            Class type = params[i];\r
-            if (type.isPrimitive())\r
-                regno = makeWrapper(code, type, regno);\r
-            else {\r
-                code.addAload(regno);\r
-                regno++;\r
-            }\r
-\r
-            code.addOpcode(Opcode.AASTORE);\r
-        }\r
-    }\r
-\r
-    private static int makeWrapper(Bytecode code, Class type, int regno) {\r
-        int index = FactoryHelper.typeIndex(type);\r
-        String wrapper = FactoryHelper.wrapperTypes[index]; \r
-        code.addNew(wrapper);\r
-        code.addOpcode(Opcode.DUP);\r
-        addLoad(code, regno, type);\r
-        code.addInvokespecial(wrapper, "<init>",\r
-                              FactoryHelper.wrapperDesc[index]);\r
-        return regno + FactoryHelper.dataSize[index];\r
-    }\r
-\r
-    /**\r
-     * @param methodName        might be null.\r
-     */\r
-    private static void callFindMethod(Bytecode code, String findMethod,\r
-            int arrayVar, int index, String methodName, String desc) {\r
-        String findClass = RuntimeSupport.class.getName();\r
-        String findDesc\r
-            = "(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/reflect/Method;";\r
-\r
-        code.addAload(arrayVar);\r
-        code.addIconst(index);\r
-        if (methodName == null)\r
-            code.addOpcode(Opcode.ACONST_NULL);\r
-        else {\r
-            code.addAload(0);\r
-            code.addLdc(methodName);\r
-            code.addLdc(desc);\r
-            code.addInvokestatic(findClass, findMethod, findDesc);\r
-        }\r
-\r
-        code.addOpcode(Opcode.AASTORE);\r
-    }\r
-\r
-    private static void addUnwrapper(Bytecode code, Class type) {\r
-        if (type.isPrimitive()) {\r
-            if (type == Void.TYPE)\r
-                code.addOpcode(Opcode.POP);\r
-            else {\r
-                int index = FactoryHelper.typeIndex(type);\r
-                String wrapper = FactoryHelper.wrapperTypes[index];\r
-                code.addCheckcast(wrapper);\r
-                code.addInvokevirtual(wrapper,\r
-                                      FactoryHelper.unwarpMethods[index],\r
-                                      FactoryHelper.unwrapDesc[index]);\r
-            }\r
-        }\r
-        else\r
-            code.addCheckcast(type.getName());\r
-    }\r
-}\r
+/*
+ * Javassist, a Java-bytecode translator toolkit.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License.  Alternatively, the contents of this file may be used under
+ * the terms of the GNU Lesser General Public License Version 2.1 or later.
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ */
+
+package javassist.util.proxy;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Member;
+import java.lang.reflect.Modifier;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+import javassist.CannotCompileException;
+import javassist.bytecode.*;
+
+/**
+ * Factory of dynamic proxy classes.
+ *
+ * <p>This factory generates a class that extends the given super class and implements
+ * the given interfaces.  The calls of the methods inherited from the super class are
+ * forwarded and then <code>invoke()</code> is called on the method handler
+ * associated with the generated class.  The calls of the methods from the interfaces
+ * are also forwarded to the method handler.
+ *
+ * <p>For example, if the following code is executed,
+ * 
+ * <ul><pre>
+ * ProxyFactory f = new ProxyFactory();
+ * f.setSuperclass(Foo.class);
+ * MethodHandler mi = new MethodHandler() {
+ *     public Object invoke(Object self, Method m, Method proceed,
+ *                          Object[] args) throws Exception {
+ *         System.out.println("Name: " + m.getName());
+ *         proceed.invoke(self, args);  // execute the original method.
+ *     }
+ * };
+ * f.setHandler(mi);
+ * Class c = f.createClass();
+ * Foo foo = (Foo)c.newInstance();
+ * </pre></ul>
+ *
+ * <p>Then, the following method call will be forwarded to MethodHandler
+ * <code>mi</code> and prints a message before executing the originally called method
+ * <code>bar()</code> in <code>Foo</code>.
+ *
+ * <ul><pre>
+ * foo.bar();
+ * </pre></ul>
+ *
+ * <p>To change the method handler during runtime,
+ * execute the following code:
+ *
+ * <ul><pre>
+ * MethodHandler mi2 = ... ;    // another handler
+ * ((ProxyObject)foo).setHandler(mi2);
+ * </pre></ul>
+ *
+ * <p>Here is an example of method handler.  It does not execute
+ * anything except invoking the original method:
+ *
+ * <ul><pre>
+ * class SimpleHandler implements MethodHandler {
+ *     public Object invoke(Object self, Method m,
+ *                          Method proceed, Object[] args) throws Exception {
+ *         return proceed.invoke(self, args);
+ *     }
+ * }
+ * </pre></ul>
+ *
+ * @see MethodHandler
+ * @since 3.1
+ */
+public class ProxyFactory {
+    private Class superClass;
+    private Class[] interfaces;
+    private MethodFilter methodFilter;
+    private MethodHandler handler;
+    private Class thisClass;
+
+    /**
+     * If the value of this variable is not null, the class file of
+     * the generated proxy class is written under the directory specified
+     * by this variable.  For example, if the value is 
+     * <code>"."</code>, then the class file is written under the current
+     * directory.  This method is for debugging.
+     *
+     * <p>The default value is null.
+     */
+    public String writeDirectory;
+
+    private static final Class OBJECT_TYPE = Object.class;
+
+    private static final String HOLDER = "_methods_";
+    private static final String HOLDER_TYPE = "[Ljava/lang/reflect/Method;";
+    private static final String HANDLER = "handler";
+    private static final String DEFAULT_INTERCEPTOR = "default_interceptor";
+    private static final String HANDLER_TYPE
+        = 'L' + MethodHandler.class.getName().replace('.', '/') + ';';
+    private static final String HANDLER_SETTER = "setHandler";
+    private static final String HANDLER_SETTER_TYPE = "(" + HANDLER_TYPE + ")V";
+
+    /**
+     * Constructs a factory of proxy class.
+     */
+    public ProxyFactory() {
+        superClass = null;
+        interfaces = null;
+        methodFilter = null;
+        handler = new MethodHandler() {
+            public Object invoke(Object self, Method m,
+                                 Method proceed, Object[] args)
+                throws Exception
+            {
+                return proceed.invoke(self, args);
+            }
+        };
+        thisClass = null;
+        writeDirectory = null;
+    }
+
+    /**
+     * Sets the super class of a proxy class.
+     */
+    public void setSuperclass(Class clazz) {
+        superClass = clazz;
+    }
+
+    /**
+     * Sets the interfaces of a proxy class.
+     */
+    public void setInterfaces(Class[] ifs) {
+        interfaces = ifs;
+    }
+
+    /**
+     * Sets a filter that selects the methods that will be controlled by a handler.
+     */
+    public void setFilter(MethodFilter mf) {
+        methodFilter = mf;
+    }
+
+    /**
+     * Generates a proxy class.
+     */
+    public Class createClass() {
+        if (thisClass == null)
+            try {
+                ClassFile cf = make();
+                ClassLoader cl = getClassLoader();
+                if (writeDirectory != null)
+                    FactoryHelper.writeFile(cf, writeDirectory);
+
+                thisClass = FactoryHelper.toClass(cf, cl);
+                setHandler();
+            }
+            catch (CannotCompileException e) {
+                throw new RuntimeException(e.getMessage(), e);
+            }
+
+        return thisClass;
+    }
+
+    protected ClassLoader getClassLoader() {
+        if (superClass != null && !superClass.getName().equals("java.lang.Object"))
+            return superClass.getClassLoader();
+        else if (interfaces != null && interfaces.length > 0)
+            return interfaces[0].getClassLoader();
+        else
+            return this.getClass().getClassLoader();
+            // return Thread.currentThread().getContextClassLoader();
+    }
+
+    /**
+     * Sets the default invocation handler.  This invocation handler is shared
+     * among all the instances of a proxy class unless another is explicitly
+     * specified.
+     */
+    public void setHandler(MethodHandler mi) {
+        handler = mi;
+        setHandler();
+    }
+
+    private void setHandler() {
+        if (thisClass != null && handler != null)
+            try {
+                Field f = thisClass.getField(DEFAULT_INTERCEPTOR);
+                f.setAccessible(true);
+                f.set(null, handler);
+                f.setAccessible(false);
+            }
+            catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+    }
+
+    private static int counter = 0;
+
+    private ClassFile make() throws CannotCompileException {
+        String superName, classname;
+        if (interfaces == null)
+            interfaces = new Class[0];
+
+        if (superClass == null) {
+            superClass = OBJECT_TYPE;
+            superName = superClass.getName();
+            classname = interfaces.length == 0 ? superName
+                                               : interfaces[0].getName(); 
+        }
+        else {
+            superName = superClass.getName();
+            classname = superName;
+        }
+
+        if (Modifier.isFinal(superClass.getModifiers()))
+            throw new CannotCompileException(superName + " is final");
+
+        // generate a proxy name.
+        classname = classname + "_$$_javassist_" + counter++;
+        if (classname.startsWith("java."))
+            classname = "org.javassist.tmp." + classname;
+
+        ClassFile cf = new ClassFile(false, classname, superName);
+        cf.setAccessFlags(AccessFlag.PUBLIC);
+        setInterfaces(cf, interfaces);
+        ConstPool pool = cf.getConstPool();
+        FieldInfo finfo = new FieldInfo(pool, DEFAULT_INTERCEPTOR, HANDLER_TYPE);
+        finfo.setAccessFlags(AccessFlag.PUBLIC | AccessFlag.STATIC);
+        cf.addField(finfo);
+
+        FieldInfo finfo2 = new FieldInfo(pool, HANDLER, HANDLER_TYPE);
+        finfo2.setAccessFlags(AccessFlag.PRIVATE);
+        cf.addField(finfo2);
+
+        HashMap allMethods = getMethods(superClass, interfaces);
+        int size = allMethods.size();
+        makeConstructors(classname, cf, pool, classname);
+        int s = overrideMethods(cf, pool, classname, allMethods);
+        addMethodsHolder(cf, pool, classname, s);
+        addSetter(classname, cf, pool);
+
+        thisClass = null;          
+        return cf;
+    }
+
+    private static void setInterfaces(ClassFile cf, Class[] interfaces) {
+        String setterIntf = ProxyObject.class.getName();
+        String[] list;
+        if (interfaces == null || interfaces.length == 0)
+            list = new String[] { setterIntf };
+        else {
+            list = new String[interfaces.length + 1];
+            for (int i = 0; i < interfaces.length; i++)
+                list[i] = interfaces[i].getName();
+
+            list[interfaces.length] = setterIntf;
+        }
+
+        cf.setInterfaces(list);
+    }
+
+    private static void addMethodsHolder(ClassFile cf, ConstPool cp,
+                                         String classname, int size)
+        throws CannotCompileException
+    {
+        FieldInfo finfo = new FieldInfo(cp, HOLDER, HOLDER_TYPE);
+        finfo.setAccessFlags(AccessFlag.PRIVATE | AccessFlag.STATIC);
+        cf.addField(finfo);
+        MethodInfo minfo = new MethodInfo(cp, "<clinit>", "()V");
+        Bytecode code = new Bytecode(cp, 0, 0);
+        code.addIconst(size * 2);
+        code.addAnewarray("java.lang.reflect.Method");
+        code.addPutstatic(classname, HOLDER, HOLDER_TYPE);
+        code.addOpcode(Bytecode.RETURN);
+        minfo.setCodeAttribute(code.toCodeAttribute());
+        cf.addMethod(minfo);
+    }
+
+    private static void addSetter(String classname, ClassFile cf, ConstPool cp)
+        throws CannotCompileException
+    {
+        MethodInfo minfo = new MethodInfo(cp, HANDLER_SETTER,
+                                          HANDLER_SETTER_TYPE);
+        minfo.setAccessFlags(AccessFlag.PUBLIC);
+        Bytecode code = new Bytecode(cp, 2, 2);
+        code.addAload(0);
+        code.addAload(1);
+        code.addPutfield(classname, HANDLER, HANDLER_TYPE);
+        code.addOpcode(Bytecode.RETURN);
+        minfo.setCodeAttribute(code.toCodeAttribute());
+        cf.addMethod(minfo);
+    }
+
+    private int overrideMethods(ClassFile cf, ConstPool cp, String className,
+                                HashMap allMethods)
+        throws CannotCompileException
+    {
+        String prefix = makeUniqueName("_d", allMethods);
+        Set entries = allMethods.entrySet();
+        Iterator it = entries.iterator();
+        int index = 0;
+        while (it.hasNext()) {
+            Map.Entry e = (Map.Entry)it.next();
+            String key = (String)e.getKey();
+            Method meth = (Method)e.getValue();
+            int mod = meth.getModifiers();
+            if (!Modifier.isFinal(mod) && !Modifier.isStatic(mod)
+                    && isVisible(mod, className, meth))
+                if (methodFilter == null || methodFilter.isHandled(meth))
+                    override(className, meth, prefix, index++,
+                             keyToDesc(key), cf, cp);
+        }
+
+        return index;
+    }
+
+    private void override(String thisClassname, Method meth, String prefix,
+                          int index, String desc, ClassFile cf, ConstPool cp)
+        throws CannotCompileException
+    {
+        Class declClass = meth.getDeclaringClass();
+        String delegatorName = prefix + index + meth.getName();
+        if (Modifier.isAbstract(meth.getModifiers()))
+            delegatorName = null;
+        else {
+            MethodInfo delegator
+                = makeDelegator(meth, desc, cp, declClass, delegatorName);
+            cf.addMethod(delegator);
+        }
+
+        MethodInfo forwarder
+            = makeForwarder(thisClassname, meth, desc, cp, declClass,
+                            delegatorName, index);
+        cf.addMethod(forwarder);
+    }
+
+    private void makeConstructors(String thisClassName, ClassFile cf,
+            ConstPool cp, String classname) throws CannotCompileException
+    {
+        Constructor[] cons = superClass.getDeclaredConstructors();
+        for (int i = 0; i < cons.length; i++) {
+            Constructor c = cons[i];
+            int mod = c.getModifiers();
+            if (!Modifier.isFinal(mod) && !Modifier.isPrivate(mod)
+                    && isVisible(mod, classname, c)) {
+                MethodInfo m = makeConstructor(thisClassName, c, cp, superClass);
+                cf.addMethod(m);
+            }
+        }
+    }
+
+    private static String makeUniqueName(String name, HashMap hash) {
+        Set keys = hash.keySet();
+        if (makeUniqueName0(name, keys.iterator()))
+            return name;
+
+        for (int i = 100; i < 999; i++) {
+            String s = name + i;
+            if (makeUniqueName0(s, keys.iterator()))
+                return s;
+        }
+
+        throw new RuntimeException("cannot make a unique method name");
+    }
+
+    private static boolean makeUniqueName0(String name, Iterator it) {
+        while (it.hasNext()) {
+            String key = (String)it.next();
+            if (key.startsWith(name))
+                return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Returns true if the method is visible from the class.
+     *
+     * @param mod       the modifiers of the method. 
+     */
+    private static boolean isVisible(int mod, String from, Member meth) {
+        if ((mod & Modifier.PRIVATE) != 0)
+            return false;
+        else if ((mod & (Modifier.PUBLIC | Modifier.PROTECTED)) != 0)
+            return true;
+        else {
+            String p = getPackageName(from);
+            String q = getPackageName(meth.getDeclaringClass().getName());
+            if (p == null)
+                return q == null;
+            else
+                return p.equals(q);
+        }
+    }
+
+    private static String getPackageName(String name) {
+        int i = name.lastIndexOf('.');
+        if (i < 0)
+            return null;
+        else
+            return name.substring(0, i);
+    }
+
+    private static HashMap getMethods(Class superClass, Class[] interfaceTypes) {
+        HashMap hash = new HashMap();
+        for (int i = 0; i < interfaceTypes.length; i++)
+            getMethods(hash, interfaceTypes[i]);
+
+        getMethods(hash, superClass);
+        return hash;
+    }
+
+    private static void getMethods(HashMap hash, Class clazz) {
+        Class[] ifs = clazz.getInterfaces();
+        for (int i = 0; i < ifs.length; i++)
+            getMethods(hash, ifs[i]);
+
+        Class parent = clazz.getSuperclass();
+        if (parent != null)
+            getMethods(hash, parent);
+
+        Method[] methods = clazz.getDeclaredMethods();
+        for (int i = 0; i < methods.length; i++)
+            if (!Modifier.isPrivate(methods[i].getModifiers())) {
+                Method m = methods[i];
+                String key = m.getName() + ':' + RuntimeSupport.makeDescriptor(m);
+                hash.put(key, methods[i]);
+            }
+    }
+
+    private static String keyToDesc(String key) {
+        return key.substring(key.indexOf(':') + 1);
+    }
+
+    private static MethodInfo makeConstructor(String thisClassName, Constructor cons,
+                                              ConstPool cp, Class superClass) {
+        String desc = RuntimeSupport.makeDescriptor(cons.getParameterTypes(),
+                                                    Void.TYPE);
+        MethodInfo minfo = new MethodInfo(cp, "<init>", desc);
+        minfo.setAccessFlags(Modifier.PUBLIC);      // cons.getModifiers() & ~Modifier.NATIVE
+        setThrows(minfo, cp, cons.getExceptionTypes());
+        Bytecode code = new Bytecode(cp, 0, 0);
+        code.addAload(0);
+        code.addGetstatic(thisClassName, DEFAULT_INTERCEPTOR, HANDLER_TYPE);
+        code.addPutfield(thisClassName, HANDLER, HANDLER_TYPE);
+        code.addAload(0);
+        int s = addLoadParameters(code, cons.getParameterTypes(), 1);
+        code.addInvokespecial(superClass.getName(), "<init>", desc);
+        code.addOpcode(Opcode.RETURN);
+        code.setMaxLocals(++s);
+        minfo.setCodeAttribute(code.toCodeAttribute());
+        return minfo;
+    }
+
+    private static MethodInfo makeDelegator(Method meth, String desc,
+                ConstPool cp, Class declClass, String delegatorName) {
+        MethodInfo delegator = new MethodInfo(cp, delegatorName, desc);
+        delegator.setAccessFlags(Modifier.FINAL | Modifier.PUBLIC
+                | (meth.getModifiers() & ~(Modifier.PRIVATE
+                                           | Modifier.PROTECTED
+                                           | Modifier.ABSTRACT
+                                           | Modifier.NATIVE
+                                           | Modifier.SYNCHRONIZED)));
+        setThrows(delegator, cp, meth);
+        Bytecode code = new Bytecode(cp, 0, 0);
+        code.addAload(0);
+        int s = addLoadParameters(code, meth.getParameterTypes(), 1);
+        code.addInvokespecial(declClass.getName(), meth.getName(), desc);
+        addReturn(code, meth.getReturnType());
+        code.setMaxLocals(++s);
+        delegator.setCodeAttribute(code.toCodeAttribute());
+        return delegator;
+    }
+
+    /**
+     * @param delegatorName     null if the original method is abstract.
+     */
+    private static MethodInfo makeForwarder(String thisClassName,
+                    Method meth, String desc, ConstPool cp,
+                    Class declClass, String delegatorName, int index) {
+        MethodInfo forwarder = new MethodInfo(cp, meth.getName(), desc);
+        forwarder.setAccessFlags(Modifier.FINAL
+                    | (meth.getModifiers() & ~(Modifier.ABSTRACT
+                                               | Modifier.NATIVE
+                                               | Modifier.SYNCHRONIZED)));
+        setThrows(forwarder, cp, meth);
+        int args = Descriptor.paramSize(desc);
+        Bytecode code = new Bytecode(cp, 0, args + 2);
+        /*
+         * if (methods[index * 2] == null) {
+         *   methods[index * 2]
+         *     = RuntimeSupport.findMethod(this, <overridden name>, <desc>);
+         *   methods[index * 2 + 1]
+         *     = RuntimeSupport.findMethod(this, <delegator name>, <desc>);
+         *     or = null // the original method is abstract.
+         * }
+         * return ($r)handler.invoke(this, methods[index * 2],
+         *                methods[index * 2 + 1], $args);
+         */
+        int origIndex = index * 2;
+        int delIndex = index * 2 + 1;
+        int arrayVar = args + 1;
+        code.addGetstatic(thisClassName, HOLDER, HOLDER_TYPE);
+        code.addAstore(arrayVar);
+        code.addAload(arrayVar);
+        code.addIconst(origIndex);
+        code.addOpcode(Opcode.AALOAD);
+        code.addOpcode(Opcode.IFNONNULL);
+        int pc = code.currentPc();
+        code.addIndex(0);
+
+        callFindMethod(code, "findSuperMethod", arrayVar, origIndex, meth.getName(), desc);
+        callFindMethod(code, "findMethod", arrayVar, delIndex, delegatorName, desc);
+
+        code.write16bit(pc, code.currentPc() - pc + 1);
+        code.addAload(0);
+        code.addGetfield(thisClassName, HANDLER, HANDLER_TYPE);
+        code.addAload(0);
+
+        code.addAload(arrayVar);
+        code.addIconst(origIndex);
+        code.addOpcode(Opcode.AALOAD);
+
+        code.addAload(arrayVar);
+        code.addIconst(delIndex);
+        code.addOpcode(Opcode.AALOAD);
+
+        makeParameterList(code, meth.getParameterTypes());
+        code.addInvokeinterface(MethodHandler.class.getName(), "invoke",
+            "(Ljava/lang/Object;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;",
+            5);
+        Class retType = meth.getReturnType();
+        addUnwrapper(code, retType);
+        addReturn(code, retType);
+
+        forwarder.setCodeAttribute(code.toCodeAttribute());
+        return forwarder;
+    }
+
+    private static void setThrows(MethodInfo minfo, ConstPool cp, Method orig) {
+        Class[] exceptions = orig.getExceptionTypes();
+        setThrows(minfo, cp, exceptions);
+    }
+
+    private static void setThrows(MethodInfo minfo, ConstPool cp,
+                                  Class[] exceptions) {
+        if (exceptions.length == 0)
+            return;
+
+        String[] list = new String[exceptions.length];
+        for (int i = 0; i < exceptions.length; i++)
+            list[i] = exceptions[i].getName();
+
+        ExceptionsAttribute ea = new ExceptionsAttribute(cp);
+        ea.setExceptions(list);
+        minfo.setExceptionsAttribute(ea);
+    }
+
+    private static int addLoadParameters(Bytecode code, Class[] params,
+                                         int offset) {
+        int stacksize = 0;
+        int n = params.length;
+        for (int i = 0; i < n; ++i)
+            stacksize += addLoad(code, stacksize + offset, params[i]);
+
+        return stacksize;
+    }
+
+    private static int addLoad(Bytecode code, int n, Class type) {
+        if (type.isPrimitive()) {
+            if (type == Long.TYPE) {
+                code.addLload(n);
+                return 2;
+            }
+            else if (type == Float.TYPE)
+                code.addFload(n);
+            else if (type == Double.TYPE) {
+                code.addDload(n);
+                return 2;
+            }
+            else
+                code.addIload(n);
+        }
+        else
+            code.addAload(n);
+
+        return 1;
+    }
+
+    private static int addReturn(Bytecode code, Class type) {
+        if (type.isPrimitive()) {
+            if (type == Long.TYPE) {
+                code.addOpcode(Opcode.LRETURN);
+                return 2;
+            }
+            else if (type == Float.TYPE)
+                code.addOpcode(Opcode.FRETURN);
+            else if (type == Double.TYPE) {
+                code.addOpcode(Opcode.DRETURN);
+                return 2;
+            }
+            else if (type == Void.TYPE) {
+                code.addOpcode(Opcode.RETURN);
+                return 0;
+            }
+            else
+                code.addOpcode(Opcode.IRETURN);
+        }
+        else
+            code.addOpcode(Opcode.ARETURN);
+
+        return 1;
+    }
+
+    private static void makeParameterList(Bytecode code, Class[] params) {
+        int regno = 1;
+        int n = params.length;
+        code.addIconst(n);
+        code.addAnewarray("java/lang/Object");
+        for (int i = 0; i < n; i++) {
+            code.addOpcode(Opcode.DUP);
+            code.addIconst(i);
+            Class type = params[i];
+            if (type.isPrimitive())
+                regno = makeWrapper(code, type, regno);
+            else {
+                code.addAload(regno);
+                regno++;
+            }
+
+            code.addOpcode(Opcode.AASTORE);
+        }
+    }
+
+    private static int makeWrapper(Bytecode code, Class type, int regno) {
+        int index = FactoryHelper.typeIndex(type);
+        String wrapper = FactoryHelper.wrapperTypes[index]; 
+        code.addNew(wrapper);
+        code.addOpcode(Opcode.DUP);
+        addLoad(code, regno, type);
+        code.addInvokespecial(wrapper, "<init>",
+                              FactoryHelper.wrapperDesc[index]);
+        return regno + FactoryHelper.dataSize[index];
+    }
+
+    /**
+     * @param methodName        might be null.
+     */
+    private static void callFindMethod(Bytecode code, String findMethod,
+            int arrayVar, int index, String methodName, String desc) {
+        String findClass = RuntimeSupport.class.getName();
+        String findDesc
+            = "(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/reflect/Method;";
+
+        code.addAload(arrayVar);
+        code.addIconst(index);
+        if (methodName == null)
+            code.addOpcode(Opcode.ACONST_NULL);
+        else {
+            code.addAload(0);
+            code.addLdc(methodName);
+            code.addLdc(desc);
+            code.addInvokestatic(findClass, findMethod, findDesc);
+        }
+
+        code.addOpcode(Opcode.AASTORE);
+    }
+
+    private static void addUnwrapper(Bytecode code, Class type) {
+        if (type.isPrimitive()) {
+            if (type == Void.TYPE)
+                code.addOpcode(Opcode.POP);
+            else {
+                int index = FactoryHelper.typeIndex(type);
+                String wrapper = FactoryHelper.wrapperTypes[index];
+                code.addCheckcast(wrapper);
+                code.addInvokevirtual(wrapper,
+                                      FactoryHelper.unwarpMethods[index],
+                                      FactoryHelper.unwrapDesc[index]);
+            }
+        }
+        else
+            code.addCheckcast(type.getName());
+    }
+}
index 4cba5c7b08b8a2e29a8bb6343acc534a29e71068..9af00f83e1debb41cf28afbbb6e7138604b8831a 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
  *
  * The contents of this file are subject to the Mozilla Public License Version
  * 1.1 (the "License"); you may not use this file except in compliance with
index 837ed6ca77397021a0f8ac839493df9131ebf206..3e4696999269cc1863dfab0152eaee434dfd20e3 100644 (file)
-/*\r
- * Javassist, a Java-bytecode translator toolkit.\r
- * Copyright (C) 1999-2005 Shigeru Chiba. All Rights Reserved.\r
- *\r
- * The contents of this file are subject to the Mozilla Public License Version\r
- * 1.1 (the "License"); you may not use this file except in compliance with\r
- * the License.  Alternatively, the contents of this file may be used under\r
- * the terms of the GNU Lesser General Public License Version 2.1 or later.\r
- *\r
- * Software distributed under the License is distributed on an "AS IS" basis,\r
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License\r
- * for the specific language governing rights and limitations under the\r
- * License.\r
- */\r
-\r
-package javassist.util.proxy;\r
-\r
-import java.lang.reflect.Method;\r
-\r
-/**\r
- * Runtime support routines that the classes generated by ProxyFactory use.\r
- *\r
- * @see ProxyFactory\r
- */\r
-public class RuntimeSupport {\r
-    /**\r
-     * Finds a method with the given name and descriptor.\r
-     * It searches only the class of self.\r
-     *\r
-     * @throws RuntimeException     if the method is not found.\r
-     */\r
-    public static Method findMethod(Object self, String name, String desc) {\r
-        Method m = findMethod2(self.getClass(), name, desc);\r
-        if (m == null)\r
-            error(self, name, desc);\r
-\r
-        return m;\r
-    }\r
-\r
-    /**\r
-     * Finds a method that has the given name and descriptor and is declared\r
-     * in the super class.\r
-     *\r
-     * @throws RuntimeException     if the method is not found.\r
-     */\r
-    public static Method findSuperMethod(Object self, String name, String desc) {\r
-        Class clazz = self.getClass();\r
-        Method m = findSuperMethod2(clazz.getSuperclass(), name, desc);\r
-        if (m == null)\r
-            m = searchInterfaces(clazz, name, desc);\r
-\r
-        if (m == null)\r
-            error(self, name, desc);\r
-\r
-        return m;\r
-    }\r
-\r
-    private static void error(Object self, String name, String desc) {\r
-        throw new RuntimeException("not found " + name + ":" + desc\r
-                + " in " + self.getClass().getName());\r
-    }\r
-\r
-    private static Method findSuperMethod2(Class clazz, String name, String desc) {\r
-        Method m = findMethod2(clazz, name, desc);\r
-        if (m != null)\r
-            return m; \r
-\r
-        Class superClass = clazz.getSuperclass();\r
-        if (superClass != null) {\r
-            m = findSuperMethod2(superClass, name, desc);\r
-            if (m != null)\r
-                return m;\r
-        }\r
-\r
-        return searchInterfaces(clazz, name, desc);\r
-    }\r
-\r
-    private static Method searchInterfaces(Class clazz, String name, String desc) {\r
-        Method m = null;\r
-        Class[] interfaces = clazz.getInterfaces();\r
-        for (int i = 0; i < interfaces.length; i++) {\r
-            m = findSuperMethod2(interfaces[i], name, desc);\r
-            if (m != null)\r
-                return m;\r
-        }\r
-\r
-        return m;\r
-    }\r
-\r
-    private static Method findMethod2(Class clazz, String name, String desc) {\r
-        Method[] methods = clazz.getDeclaredMethods();\r
-        int n = methods.length;\r
-        for (int i = 0; i < n; i++)\r
-            if (methods[i].getName().equals(name)\r
-                && makeDescriptor(methods[i]).equals(desc))\r
-            return methods[i];\r
-\r
-        return null;\r
-    }\r
-\r
-    /**\r
-     * Makes a descriptor for a given method.\r
-     */\r
-    public static String makeDescriptor(Method m) {\r
-        Class[] params = m.getParameterTypes();\r
-        return makeDescriptor(params, m.getReturnType());\r
-    }\r
-\r
-    /**\r
-     * Makes a descriptor for a given method.\r
-     *\r
-     * @param params    parameter types.\r
-     * @param retType   return type.\r
-     */\r
-    public static String makeDescriptor(Class[] params, Class retType) {\r
-        StringBuffer sbuf = new StringBuffer();\r
-        sbuf.append('(');\r
-        for (int i = 0; i < params.length; i++)\r
-            makeDesc(sbuf, params[i]);\r
-\r
-        sbuf.append(')');\r
-        makeDesc(sbuf, retType);\r
-        return sbuf.toString();\r
-    }\r
-\r
-    private static void makeDesc(StringBuffer sbuf, Class type) {\r
-        if (type.isArray()) {\r
-            sbuf.append('[');\r
-            makeDesc(sbuf, type.getComponentType());\r
-        }\r
-        else if (type.isPrimitive()) {\r
-            if (type == Void.TYPE)\r
-                sbuf.append('V');\r
-            else if (type == Integer.TYPE)\r
-                sbuf.append('I');\r
-            else if (type == Byte.TYPE)\r
-                sbuf.append('B');\r
-            else if (type == Long.TYPE)\r
-                sbuf.append('J');\r
-            else if (type == Double.TYPE)\r
-                sbuf.append('D');\r
-            else if (type == Float.TYPE)\r
-                sbuf.append('F');\r
-            else if (type == Character.TYPE)\r
-                sbuf.append('C');\r
-            else if (type == Short.TYPE)\r
-                sbuf.append('S');\r
-            else if (type == Boolean.TYPE)\r
-                sbuf.append('Z');\r
-            else\r
-                throw new RuntimeException("bad type: " + type.getName());\r
-        }\r
-        else\r
-            sbuf.append('L').append(type.getName().replace('.', '/'))\r
-                .append(';');\r
-    }\r
-}\r
+/*
+ * Javassist, a Java-bytecode translator toolkit.
+ * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License.  Alternatively, the contents of this file may be used under
+ * the terms of the GNU Lesser General Public License Version 2.1 or later.
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ */
+
+package javassist.util.proxy;
+
+import java.lang.reflect.Method;
+
+/**
+ * Runtime support routines that the classes generated by ProxyFactory use.
+ *
+ * @see ProxyFactory
+ */
+public class RuntimeSupport {
+    /**
+     * Finds a method with the given name and descriptor.
+     * It searches only the class of self.
+     *
+     * @throws RuntimeException     if the method is not found.
+     */
+    public static Method findMethod(Object self, String name, String desc) {
+        Method m = findMethod2(self.getClass(), name, desc);
+        if (m == null)
+            error(self, name, desc);
+
+        return m;
+    }
+
+    /**
+     * Finds a method that has the given name and descriptor and is declared
+     * in the super class.
+     *
+     * @throws RuntimeException     if the method is not found.
+     */
+    public static Method findSuperMethod(Object self, String name, String desc) {
+        Class clazz = self.getClass();
+        Method m = findSuperMethod2(clazz.getSuperclass(), name, desc);
+        if (m == null)
+            m = searchInterfaces(clazz, name, desc);
+
+        if (m == null)
+            error(self, name, desc);
+
+        return m;
+    }
+
+    private static void error(Object self, String name, String desc) {
+        throw new RuntimeException("not found " + name + ":" + desc
+                + " in " + self.getClass().getName());
+    }
+
+    private static Method findSuperMethod2(Class clazz, String name, String desc) {
+        Method m = findMethod2(clazz, name, desc);
+        if (m != null)
+            return m; 
+
+        Class superClass = clazz.getSuperclass();
+        if (superClass != null) {
+            m = findSuperMethod2(superClass, name, desc);
+            if (m != null)
+                return m;
+        }
+
+        return searchInterfaces(clazz, name, desc);
+    }
+
+    private static Method searchInterfaces(Class clazz, String name, String desc) {
+        Method m = null;
+        Class[] interfaces = clazz.getInterfaces();
+        for (int i = 0; i < interfaces.length; i++) {
+            m = findSuperMethod2(interfaces[i], name, desc);
+            if (m != null)
+                return m;
+        }
+
+        return m;
+    }
+
+    private static Method findMethod2(Class clazz, String name, String desc) {
+        Method[] methods = clazz.getDeclaredMethods();
+        int n = methods.length;
+        for (int i = 0; i < n; i++)
+            if (methods[i].getName().equals(name)
+                && makeDescriptor(methods[i]).equals(desc))
+            return methods[i];
+
+        return null;
+    }
+
+    /**
+     * Makes a descriptor for a given method.
+     */
+    public static String makeDescriptor(Method m) {
+        Class[] params = m.getParameterTypes();
+        return makeDescriptor(params, m.getReturnType());
+    }
+
+    /**
+     * Makes a descriptor for a given method.
+     *
+     * @param params    parameter types.
+     * @param retType   return type.
+     */
+    public static String makeDescriptor(Class[] params, Class retType) {
+        StringBuffer sbuf = new StringBuffer();
+        sbuf.append('(');
+        for (int i = 0; i < params.length; i++)
+            makeDesc(sbuf, params[i]);
+
+        sbuf.append(')');
+        makeDesc(sbuf, retType);
+        return sbuf.toString();
+    }
+
+    private static void makeDesc(StringBuffer sbuf, Class type) {
+        if (type.isArray()) {
+            sbuf.append('[');
+            makeDesc(sbuf, type.getComponentType());
+        }
+        else if (type.isPrimitive()) {
+            if (type == Void.TYPE)
+                sbuf.append('V');
+            else if (type == Integer.TYPE)
+                sbuf.append('I');
+            else if (type == Byte.TYPE)
+                sbuf.append('B');
+            else if (type == Long.TYPE)
+                sbuf.append('J');
+            else if (type == Double.TYPE)
+                sbuf.append('D');
+            else if (type == Float.TYPE)
+                sbuf.append('F');
+            else if (type == Character.TYPE)
+                sbuf.append('C');
+            else if (type == Short.TYPE)
+                sbuf.append('S');
+            else if (type == Boolean.TYPE)
+                sbuf.append('Z');
+            else
+                throw new RuntimeException("bad type: " + type.getName());
+        }
+        else
+            sbuf.append('L').append(type.getName().replace('.', '/'))
+                .append(';');
+    }
+}