You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ClassVisitor.java 6.5KB

14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. package org.aspectj.apache.bcel.classfile;
  2. import org.aspectj.apache.bcel.classfile.annotation.RuntimeInvisAnnos;
  3. import org.aspectj.apache.bcel.classfile.annotation.RuntimeInvisParamAnnos;
  4. import org.aspectj.apache.bcel.classfile.annotation.RuntimeInvisTypeAnnos;
  5. import org.aspectj.apache.bcel.classfile.annotation.RuntimeVisAnnos;
  6. import org.aspectj.apache.bcel.classfile.annotation.RuntimeVisParamAnnos;
  7. import org.aspectj.apache.bcel.classfile.annotation.RuntimeVisTypeAnnos;
  8. /* ====================================================================
  9. * The Apache Software License, Version 1.1
  10. *
  11. * Copyright (c) 2001 The Apache Software Foundation. All rights
  12. * reserved.
  13. *
  14. * Redistribution and use in source and binary forms, with or without
  15. * modification, are permitted provided that the following conditions
  16. * are met:
  17. *
  18. * 1. Redistributions of source code must retain the above copyright
  19. * notice, this list of conditions and the following disclaimer.
  20. *
  21. * 2. Redistributions in binary form must reproduce the above copyright
  22. * notice, this list of conditions and the following disclaimer in
  23. * the documentation and/or other materials provided with the
  24. * distribution.
  25. *
  26. * 3. The end-user documentation included with the redistribution,
  27. * if any, must include the following acknowledgment:
  28. * "This product includes software developed by the
  29. * Apache Software Foundation (http://www.apache.org/)."
  30. * Alternately, this acknowledgment may appear in the software itself,
  31. * if and wherever such third-party acknowledgments normally appear.
  32. *
  33. * 4. The names "Apache" and "Apache Software Foundation" and
  34. * "Apache BCEL" must not be used to endorse or promote products
  35. * derived from this software without prior written permission. For
  36. * written permission, please contact apache@apache.org.
  37. *
  38. * 5. Products derived from this software may not be called "Apache",
  39. * "Apache BCEL", nor may "Apache" appear in their name, without
  40. * prior written permission of the Apache Software Foundation.
  41. *
  42. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  43. * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  44. * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  45. * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  46. * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  47. * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  48. * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  49. * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  50. * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  51. * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  52. * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  53. * SUCH DAMAGE.
  54. * ====================================================================
  55. *
  56. * This software consists of voluntary contributions made by many
  57. * individuals on behalf of the Apache Software Foundation. For more
  58. * information on the Apache Software Foundation, please see
  59. * <http://www.apache.org/>.
  60. */
  61. /**
  62. * Interface to make use of the Visitor pattern programming style. I.e. a class that implements this interface can traverse the
  63. * contents of a Java class just by calling the `accept' method which all classes have.
  64. *
  65. * Implemented by wish of <A HREF="http://www.inf.fu-berlin.de/~bokowski">Boris Bokowski</A>.
  66. *
  67. * @version $Id: ClassVisitor.java,v 1.4 2009/09/15 19:40:13 aclement Exp $
  68. * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
  69. */
  70. public interface ClassVisitor {
  71. public void visitCode(Code obj);
  72. public void visitCodeException(CodeException obj);
  73. public void visitConstantClass(ConstantClass obj);
  74. public void visitConstantDouble(ConstantDouble obj);
  75. public void visitConstantFieldref(ConstantFieldref obj);
  76. public void visitConstantFloat(ConstantFloat obj);
  77. public void visitConstantInteger(ConstantInteger obj);
  78. public void visitConstantInterfaceMethodref(ConstantInterfaceMethodref obj);
  79. public void visitConstantLong(ConstantLong obj);
  80. public void visitConstantMethodref(ConstantMethodref obj);
  81. public void visitConstantMethodHandle(ConstantMethodHandle obj);
  82. public void visitConstantNameAndType(ConstantNameAndType obj);
  83. public void visitConstantMethodType(ConstantMethodType obj);
  84. public void visitConstantInvokeDynamic(ConstantInvokeDynamic obj);
  85. public void visitConstantDynamic(ConstantDynamic obj);
  86. public void visitConstantPool(ConstantPool obj);
  87. public void visitConstantString(ConstantString obj);
  88. public void visitConstantModule(ConstantModule obj);
  89. public void visitConstantPackage(ConstantPackage obj);
  90. public void visitConstantUtf8(ConstantUtf8 obj);
  91. public void visitConstantValue(ConstantValue obj);
  92. public void visitDeprecated(Deprecated obj);
  93. public void visitExceptionTable(ExceptionTable obj);
  94. public void visitField(Field obj);
  95. public void visitInnerClass(InnerClass obj);
  96. public void visitInnerClasses(InnerClasses obj);
  97. public void visitJavaClass(JavaClass obj);
  98. public void visitLineNumber(LineNumber obj);
  99. public void visitLineNumberTable(LineNumberTable obj);
  100. public void visitLocalVariable(LocalVariable obj);
  101. public void visitLocalVariableTable(LocalVariableTable obj);
  102. public void visitMethod(Method obj);
  103. public void visitSignature(Signature obj);
  104. public void visitSourceFile(SourceFile obj);
  105. public void visitSynthetic(Synthetic obj);
  106. public void visitBootstrapMethods(BootstrapMethods obj);
  107. public void visitUnknown(Unknown obj);
  108. public void visitStackMap(StackMap obj);
  109. public void visitStackMapEntry(StackMapEntry obj);
  110. public void visitEnclosingMethod(EnclosingMethod obj);
  111. public void visitRuntimeVisibleAnnotations(RuntimeVisAnnos obj);
  112. public void visitRuntimeInvisibleAnnotations(RuntimeInvisAnnos obj);
  113. public void visitRuntimeVisibleParameterAnnotations(RuntimeVisParamAnnos obj);
  114. public void visitRuntimeInvisibleParameterAnnotations(RuntimeInvisParamAnnos obj);
  115. public void visitRuntimeVisibleTypeAnnotations(RuntimeVisTypeAnnos obj);
  116. public void visitRuntimeInvisibleTypeAnnotations(RuntimeInvisTypeAnnos obj);
  117. public void visitAnnotationDefault(AnnotationDefault obj);
  118. public void visitLocalVariableTypeTable(LocalVariableTypeTable obj);
  119. public void visitMethodParameters(MethodParameters methodParameters);
  120. // J9:
  121. public void visitModule(Module module);
  122. public void visitModulePackages(ModulePackages modulePackage);
  123. public void visitModuleMainClass(ModuleMainClass moduleMainClass);
  124. }