1 /*
   2  * reserved comment block
   3  * DO NOT REMOVE OR ALTER!
   4  */
   5 /*
   6  * Licensed to the Apache Software Foundation (ASF) under one or more
   7  * contributor license agreements.  See the NOTICE file distributed with
   8  * this work for additional information regarding copyright ownership.
   9  * The ASF licenses this file to You under the Apache License, Version 2.0
  10  * (the "License"); you may not use this file except in compliance with
  11  * the License.  You may obtain a copy of the License at
  12  *
  13  *      http://www.apache.org/licenses/LICENSE-2.0
  14  *
  15  * Unless required by applicable law or agreed to in writing, software
  16  * distributed under the License is distributed on an "AS IS" BASIS,
  17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  18  * See the License for the specific language governing permissions and
  19  * limitations under the License.
  20  */
  21 
  22 package com.sun.org.apache.bcel.internal.classfile;
  23 
  24 
  25 /**
  26  * Interface to make use of the Visitor pattern programming style.
  27  * I.e. a class that implements this interface can traverse the contents of
  28  * a Java class just by calling the `accept' method which all classes have.
  29  *
  30  * Implemented by wish of
  31  * <A HREF="http://www.inf.fu-berlin.de/~bokowski">Boris Bokowski</A>.
  32  *
  33  * @author  <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
  34  */
  35 public interface Visitor {
  36   public void visitCode(Code obj);
  37   public void visitCodeException(CodeException obj);
  38   public void visitConstantClass(ConstantClass obj);
  39   public void visitConstantDouble(ConstantDouble obj);
  40   public void visitConstantFieldref(ConstantFieldref obj);
  41   public void visitConstantFloat(ConstantFloat obj);
  42   public void visitConstantInteger(ConstantInteger obj);
  43   public void visitConstantInterfaceMethodref(ConstantInterfaceMethodref obj);
  44   public void visitConstantLong(ConstantLong obj);
  45   public void visitConstantMethodref(ConstantMethodref obj);
  46   public void visitConstantNameAndType(ConstantNameAndType obj);
  47   public void visitConstantPool(ConstantPool obj);
  48   public void visitConstantString(ConstantString obj);
  49   public void visitConstantUtf8(ConstantUtf8 obj);
  50   public void visitConstantValue(ConstantValue obj);
  51   public void visitDeprecated(Deprecated obj);
  52   public void visitExceptionTable(ExceptionTable obj);
  53   public void visitField(Field obj);
  54   public void visitInnerClass(InnerClass obj);
  55   public void visitInnerClasses(InnerClasses obj);
  56   public void visitJavaClass(JavaClass obj);
  57   public void visitLineNumber(LineNumber obj);
  58   public void visitLineNumberTable(LineNumberTable obj);
  59   public void visitLocalVariable(LocalVariable obj);
  60   public void visitLocalVariableTable(LocalVariableTable obj);
  61   public void visitLocalVariableTypeTable(LocalVariableTypeTable obj);
  62   public void visitMethod(Method obj);
  63   public void visitSignature(Signature obj);
  64   public void visitSourceFile(SourceFile obj);
  65   public void visitSynthetic(Synthetic obj);
  66   public void visitUnknown(Unknown obj);
  67   public void visitStackMap(StackMap obj);
  68   public void visitStackMapEntry(StackMapEntry obj);
  69 }