1/* 2 * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26/* 27 * This file is available under and governed by the GNU General Public 28 * License version 2 only, as published by the Free Software Foundation. 29 * However, the following notice accompanied the original version of this 30 * file: 31 * 32 * ASM: a very small and fast Java bytecode manipulation framework 33 * Copyright (c) 2000-2007 INRIA, France Telecom 34 * All rights reserved. 35 * 36 * Redistribution and use in source and binary forms, with or without 37 * modification, are permitted provided that the following conditions 38 * are met: 39 * 1. Redistributions of source code must retain the above copyright 40 * notice, this list of conditions and the following disclaimer. 41 * 2. Redistributions in binary form must reproduce the above copyright 42 * notice, this list of conditions and the following disclaimer in the 43 * documentation and/or other materials provided with the distribution. 44 * 3. Neither the name of the copyright holders nor the names of its 45 * contributors may be used to endorse or promote products derived from 46 * this software without specific prior written permission. 47 * 48 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 49 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 50 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 51 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 52 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 53 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 54 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 55 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 56 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 57 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 58 * THE POSSIBILITY OF SUCH DAMAGE. 59 */ 60package com.sun.xml.internal.ws.org.objectweb.asm; 61 62/** 63 * An empty {@link ClassVisitor} that delegates to another {@link ClassVisitor}. 64 * This class can be used as a super class to quickly implement usefull class 65 * adapter classes, just by overriding the necessary methods. 66 * 67 * @author Eric Bruneton 68 */ 69public class ClassAdapter implements ClassVisitor { 70 71 /** 72 * The {@link ClassVisitor} to which this adapter delegates calls. 73 */ 74 protected ClassVisitor cv; 75 76 /** 77 * Constructs a new {@link ClassAdapter} object. 78 * 79 * @param cv the class visitor to which this adapter must delegate calls. 80 */ 81 public ClassAdapter(final ClassVisitor cv) { 82 this.cv = cv; 83 } 84 85 public void visit( 86 final int version, 87 final int access, 88 final String name, 89 final String signature, 90 final String superName, 91 final String[] interfaces) 92 { 93 cv.visit(version, access, name, signature, superName, interfaces); 94 } 95 96 public void visitSource(final String source, final String debug) { 97 cv.visitSource(source, debug); 98 } 99 100 public void visitOuterClass( 101 final String owner, 102 final String name, 103 final String desc) 104 { 105 cv.visitOuterClass(owner, name, desc); 106 } 107 108 public AnnotationVisitor visitAnnotation( 109 final String desc, 110 final boolean visible) 111 { 112 return cv.visitAnnotation(desc, visible); 113 } 114 115 public void visitAttribute(final Attribute attr) { 116 cv.visitAttribute(attr); 117 } 118 119 public void visitInnerClass( 120 final String name, 121 final String outerName, 122 final String innerName, 123 final int access) 124 { 125 cv.visitInnerClass(name, outerName, innerName, access); 126 } 127 128 public FieldVisitor visitField( 129 final int access, 130 final String name, 131 final String desc, 132 final String signature, 133 final Object value) 134 { 135 return cv.visitField(access, name, desc, signature, value); 136 } 137 138 public MethodVisitor visitMethod( 139 final int access, 140 final String name, 141 final String desc, 142 final String signature, 143 final String[] exceptions) 144 { 145 return cv.visitMethod(access, name, desc, signature, exceptions); 146 } 147 148 public void visitEnd() { 149 cv.visitEnd(); 150 } 151} 152