Mercurial > lasercutter
view src/clojure/asm/ClassAdapter.java @ 10:ef7dbbd6452c
added clojure source goodness
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 21 Aug 2010 06:25:44 -0400 |
parents | |
children |
line wrap: on
line source
1 /***2 * ASM: a very small and fast Java bytecode manipulation framework3 * Copyright (c) 2000-2005 INRIA, France Telecom4 * All rights reserved.5 *6 * Redistribution and use in source and binary forms, with or without7 * modification, are permitted provided that the following conditions8 * are met:9 * 1. Redistributions of source code must retain the above copyright10 * notice, this list of conditions and the following disclaimer.11 * 2. Redistributions in binary form must reproduce the above copyright12 * notice, this list of conditions and the following disclaimer in the13 * documentation and/or other materials provided with the distribution.14 * 3. Neither the name of the copyright holders nor the names of its15 * contributors may be used to endorse or promote products derived from16 * this software without specific prior written permission.17 *18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"19 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE20 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE21 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE22 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR23 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF24 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS25 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN26 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)27 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF28 * THE POSSIBILITY OF SUCH DAMAGE.29 */30 package clojure.asm;32 /**33 * An empty {@link ClassVisitor} that delegates to another {@link ClassVisitor}.34 * This class can be used as a super class to quickly implement usefull class35 * adapter classes, just by overriding the necessary methods.36 *37 * @author Eric Bruneton38 */39 public class ClassAdapter implements ClassVisitor{41 /**42 * The {@link ClassVisitor} to which this adapter delegates calls.43 */44 protected ClassVisitor cv;46 /**47 * Constructs a new {@link ClassAdapter} object.48 *49 * @param cv the class visitor to which this adapter must delegate calls.50 */51 public ClassAdapter(final ClassVisitor cv){52 this.cv = cv;53 }55 public void visit(56 final int version,57 final int access,58 final String name,59 final String signature,60 final String superName,61 final String[] interfaces){62 cv.visit(version, access, name, signature, superName, interfaces);63 }65 public void visitSource(final String source, final String debug){66 cv.visitSource(source, debug);67 }69 public void visitOuterClass(70 final String owner,71 final String name,72 final String desc){73 cv.visitOuterClass(owner, name, desc);74 }76 public AnnotationVisitor visitAnnotation(77 final String desc,78 final boolean visible){79 return cv.visitAnnotation(desc, visible);80 }82 public void visitAttribute(final Attribute attr){83 cv.visitAttribute(attr);84 }86 public void visitInnerClass(87 final String name,88 final String outerName,89 final String innerName,90 final int access){91 cv.visitInnerClass(name, outerName, innerName, access);92 }94 public FieldVisitor visitField(95 final int access,96 final String name,97 final String desc,98 final String signature,99 final Object value){100 return cv.visitField(access, name, desc, signature, value);101 }103 public MethodVisitor visitMethod(104 final int access,105 final String name,106 final String desc,107 final String signature,108 final String[] exceptions){109 return cv.visitMethod(access, name, desc, signature, exceptions);110 }112 public void visitEnd(){113 cv.visitEnd();114 }115 }