Class DescendingVisitor

  • All Implemented Interfaces:
    Visitor

    public class DescendingVisitor
    extends java.lang.Object
    implements Visitor
    Traverses a JavaClass with another Visitor object 'piggy-backed' that is applied to all components of a JavaClass object. I.e. this class supplies the traversal strategy, other classes can make use of it.
    • Field Detail

      • visitor

        private final Visitor visitor
      • stack

        private final java.util.Stack<java.lang.Object> stack
    • Constructor Detail

      • DescendingVisitor

        public DescendingVisitor​(JavaClass clazz,
                                 Visitor visitor)
        Constructs a DescendingVisitor.
        Parameters:
        clazz - Class to traverse.
        visitor - visitor object to apply to all components.
    • Method Detail

      • accept

        private <E extends Node> void accept​(E[] node)
      • current

        public java.lang.Object current()
        Gets the current object.
        Returns:
        current object.
      • predecessor

        public java.lang.Object predecessor()
        Gets the container of current entity, that is, predecessor during traversal.
        Returns:
        container of current entity, that is, predecessor during traversal.
      • predecessor

        public java.lang.Object predecessor​(int level)
        Gets the container of current entity, that is, predecessor during traversal.
        Parameters:
        level - nesting level, that is, 0 returns the direct predecessor.
        Returns:
        container of current entity, that is, predecessor during traversal.
      • visit

        public void visit()
        Start traversal.
      • visitAnnotation

        public void visitAnnotation​(Annotations annotation)
        Description copied from interface: Visitor
        Visits an Annotations attribute.
        Specified by:
        visitAnnotation in interface Visitor
        Parameters:
        annotation - the attribute.
        Since:
        6.0
      • visitAnnotationDefault

        public void visitAnnotationDefault​(AnnotationDefault obj)
        Description copied from interface: Visitor
        Visits an AnnotationDefault attribute.
        Specified by:
        visitAnnotationDefault in interface Visitor
        Parameters:
        obj - the attribute.
        Since:
        6.0
      • visitAnnotationEntry

        public void visitAnnotationEntry​(AnnotationEntry annotationEntry)
        Description copied from interface: Visitor
        Visits an AnnotationEntry.
        Specified by:
        visitAnnotationEntry in interface Visitor
        Parameters:
        annotationEntry - the annotation entry.
        Since:
        6.0
      • visitBootstrapMethods

        public void visitBootstrapMethods​(BootstrapMethods bm)
        Description copied from interface: Visitor
        Visits a BootstrapMethods attribute.
        Specified by:
        visitBootstrapMethods in interface Visitor
        Parameters:
        bm - the attribute.
        Since:
        6.0
      • visitCode

        public void visitCode​(Code code)
        Description copied from interface: Visitor
        Visits a Code attribute.
        Specified by:
        visitCode in interface Visitor
        Parameters:
        code - the attribute.
      • visitCodeException

        public void visitCodeException​(CodeException ce)
        Description copied from interface: Visitor
        Visits a CodeException.
        Specified by:
        visitCodeException in interface Visitor
        Parameters:
        ce - the exception.
      • visitConstantClass

        public void visitConstantClass​(ConstantClass constant)
        Description copied from interface: Visitor
        Visits a ConstantClass.
        Specified by:
        visitConstantClass in interface Visitor
        Parameters:
        constant - the constant.
      • visitConstantDouble

        public void visitConstantDouble​(ConstantDouble constant)
        Description copied from interface: Visitor
        Visits a ConstantDouble.
        Specified by:
        visitConstantDouble in interface Visitor
        Parameters:
        constant - the constant.
      • visitConstantDynamic

        public void visitConstantDynamic​(ConstantDynamic obj)
        Description copied from interface: Visitor
        Visits a ConstantDynamic.
        Specified by:
        visitConstantDynamic in interface Visitor
        Parameters:
        obj - the constant.
        Since:
        6.3
      • visitConstantFieldref

        public void visitConstantFieldref​(ConstantFieldref constant)
        Description copied from interface: Visitor
        Visits a ConstantFieldref.
        Specified by:
        visitConstantFieldref in interface Visitor
        Parameters:
        constant - the constant.
      • visitConstantFloat

        public void visitConstantFloat​(ConstantFloat constant)
        Description copied from interface: Visitor
        Visits a ConstantFloat.
        Specified by:
        visitConstantFloat in interface Visitor
        Parameters:
        constant - the constant.
      • visitConstantInteger

        public void visitConstantInteger​(ConstantInteger constant)
        Description copied from interface: Visitor
        Visits a ConstantInteger.
        Specified by:
        visitConstantInteger in interface Visitor
        Parameters:
        constant - the constant.
      • visitConstantLong

        public void visitConstantLong​(ConstantLong constant)
        Description copied from interface: Visitor
        Visits a ConstantLong.
        Specified by:
        visitConstantLong in interface Visitor
        Parameters:
        constant - the constant.
      • visitConstantModule

        public void visitConstantModule​(ConstantModule obj)
        Description copied from interface: Visitor
        Visits a ConstantModule.
        Specified by:
        visitConstantModule in interface Visitor
        Parameters:
        obj - the constant.
        Since:
        6.1
      • visitConstantPackage

        public void visitConstantPackage​(ConstantPackage obj)
        Description copied from interface: Visitor
        Visits a ConstantPackage.
        Specified by:
        visitConstantPackage in interface Visitor
        Parameters:
        obj - the constant.
        Since:
        6.1
      • visitConstantPool

        public void visitConstantPool​(ConstantPool cp)
        Description copied from interface: Visitor
        Visits a ConstantPool.
        Specified by:
        visitConstantPool in interface Visitor
        Parameters:
        cp - the constant pool.
      • visitConstantString

        public void visitConstantString​(ConstantString constant)
        Description copied from interface: Visitor
        Visits a ConstantString.
        Specified by:
        visitConstantString in interface Visitor
        Parameters:
        constant - the constant.
      • visitConstantUtf8

        public void visitConstantUtf8​(ConstantUtf8 constant)
        Description copied from interface: Visitor
        Visits a ConstantUtf8.
        Specified by:
        visitConstantUtf8 in interface Visitor
        Parameters:
        constant - the constant.
      • visitConstantValue

        public void visitConstantValue​(ConstantValue cv)
        Description copied from interface: Visitor
        Visits a ConstantValue attribute.
        Specified by:
        visitConstantValue in interface Visitor
        Parameters:
        cv - the attribute.
      • visitDeprecated

        public void visitDeprecated​(Deprecated attribute)
        Description copied from interface: Visitor
        Visits a Deprecated attribute.
        Specified by:
        visitDeprecated in interface Visitor
        Parameters:
        attribute - the attribute.
      • visitEnclosingMethod

        public void visitEnclosingMethod​(EnclosingMethod obj)
        Description copied from interface: Visitor
        Visits an EnclosingMethod attribute.
        Specified by:
        visitEnclosingMethod in interface Visitor
        Parameters:
        obj - the attribute.
        Since:
        6.0
      • visitExceptionTable

        public void visitExceptionTable​(ExceptionTable table)
        Description copied from interface: Visitor
        Visits an ExceptionTable attribute.
        Specified by:
        visitExceptionTable in interface Visitor
        Parameters:
        table - the attribute.
      • visitField

        public void visitField​(Field field)
        Description copied from interface: Visitor
        Visits a Field.
        Specified by:
        visitField in interface Visitor
        Parameters:
        field - the field.
      • visitInnerClass

        public void visitInnerClass​(InnerClass inner)
        Description copied from interface: Visitor
        Visits an InnerClass.
        Specified by:
        visitInnerClass in interface Visitor
        Parameters:
        inner - the inner class.
      • visitInnerClasses

        public void visitInnerClasses​(InnerClasses ic)
        Description copied from interface: Visitor
        Visits an InnerClasses attribute.
        Specified by:
        visitInnerClasses in interface Visitor
        Parameters:
        ic - the attribute.
      • visitJavaClass

        public void visitJavaClass​(JavaClass clazz)
        Description copied from interface: Visitor
        Visits a JavaClass.
        Specified by:
        visitJavaClass in interface Visitor
        Parameters:
        clazz - the class.
      • visitLineNumber

        public void visitLineNumber​(LineNumber number)
        Description copied from interface: Visitor
        Visits a LineNumber.
        Specified by:
        visitLineNumber in interface Visitor
        Parameters:
        number - the line number.
      • visitLineNumberTable

        public void visitLineNumberTable​(LineNumberTable table)
        Description copied from interface: Visitor
        Visits a LineNumberTable attribute.
        Specified by:
        visitLineNumberTable in interface Visitor
        Parameters:
        table - the attribute.
      • visitLocalVariable

        public void visitLocalVariable​(LocalVariable var)
        Description copied from interface: Visitor
        Visits a LocalVariable.
        Specified by:
        visitLocalVariable in interface Visitor
        Parameters:
        var - the local variable.
      • visitMethod

        public void visitMethod​(Method method)
        Description copied from interface: Visitor
        Visits a Method.
        Specified by:
        visitMethod in interface Visitor
        Parameters:
        method - the method.
      • visitMethodParameter

        public void visitMethodParameter​(MethodParameter obj)
        Description copied from interface: Visitor
        Visits a MethodParameter.
        Specified by:
        visitMethodParameter in interface Visitor
        Parameters:
        obj - the method parameter.
        Since:
        6.4.0
      • visitMethodParameters

        public void visitMethodParameters​(MethodParameters obj)
        Description copied from interface: Visitor
        Visits a MethodParameters attribute.
        Specified by:
        visitMethodParameters in interface Visitor
        Parameters:
        obj - the attribute.
        Since:
        6.0
      • visitModule

        public void visitModule​(Module obj)
        Description copied from interface: Visitor
        Visits a Module attribute.
        Specified by:
        visitModule in interface Visitor
        Parameters:
        obj - the module.
        Since:
        6.4.0
      • visitModuleExports

        public void visitModuleExports​(ModuleExports obj)
        Description copied from interface: Visitor
        Visits a ModuleExports entry.
        Specified by:
        visitModuleExports in interface Visitor
        Parameters:
        obj - the module exports.
        Since:
        6.4.0
      • visitModuleMainClass

        public void visitModuleMainClass​(ModuleMainClass obj)
        Description copied from interface: Visitor
        Visits a ModuleMainClass attribute.
        Specified by:
        visitModuleMainClass in interface Visitor
        Parameters:
        obj - the attribute.
        Since:
        6.4.0
      • visitModuleOpens

        public void visitModuleOpens​(ModuleOpens obj)
        Description copied from interface: Visitor
        Visits a ModuleOpens entry.
        Specified by:
        visitModuleOpens in interface Visitor
        Parameters:
        obj - the module opens.
        Since:
        6.4.0
      • visitModulePackages

        public void visitModulePackages​(ModulePackages obj)
        Description copied from interface: Visitor
        Visits a ModulePackages attribute.
        Specified by:
        visitModulePackages in interface Visitor
        Parameters:
        obj - the module packages.
        Since:
        6.4.0
      • visitModuleProvides

        public void visitModuleProvides​(ModuleProvides obj)
        Description copied from interface: Visitor
        Visits a ModuleProvides entry.
        Specified by:
        visitModuleProvides in interface Visitor
        Parameters:
        obj - the module provides.
        Since:
        6.4.0
      • visitModuleRequires

        public void visitModuleRequires​(ModuleRequires obj)
        Description copied from interface: Visitor
        Visits a ModuleRequires entry.
        Specified by:
        visitModuleRequires in interface Visitor
        Parameters:
        obj - the module requires.
        Since:
        6.4.0
      • visitNestHost

        public void visitNestHost​(NestHost obj)
        Description copied from interface: Visitor
        Visits a NestHost attribute.
        Specified by:
        visitNestHost in interface Visitor
        Parameters:
        obj - the attribute.
        Since:
        6.4.0
      • visitNestMembers

        public void visitNestMembers​(NestMembers obj)
        Description copied from interface: Visitor
        Visits a NestMembers attribute.
        Specified by:
        visitNestMembers in interface Visitor
        Parameters:
        obj - the attribute.
        Since:
        6.4.0
      • visitRecord

        public void visitRecord​(Record record)
        Description copied from interface: Visitor
        Visits a Record object.
        Specified by:
        visitRecord in interface Visitor
        Parameters:
        record - Record to visit.
      • visitSignature

        public void visitSignature​(Signature attribute)
        Description copied from interface: Visitor
        Visits a Signature attribute.
        Specified by:
        visitSignature in interface Visitor
        Parameters:
        attribute - the attribute.
      • visitSourceFile

        public void visitSourceFile​(SourceFile attribute)
        Description copied from interface: Visitor
        Visits a SourceFile attribute.
        Specified by:
        visitSourceFile in interface Visitor
        Parameters:
        attribute - the attribute.
      • visitStackMap

        public void visitStackMap​(StackMap table)
        Description copied from interface: Visitor
        Visits a StackMap attribute.
        Specified by:
        visitStackMap in interface Visitor
        Parameters:
        table - the attribute.
      • visitStackMapEntry

        public void visitStackMapEntry​(StackMapEntry var)
        Description copied from interface: Visitor
        Visits a StackMapEntry.
        Specified by:
        visitStackMapEntry in interface Visitor
        Parameters:
        var - the entry.
      • visitSynthetic

        public void visitSynthetic​(Synthetic attribute)
        Description copied from interface: Visitor
        Visits a Synthetic attribute.
        Specified by:
        visitSynthetic in interface Visitor
        Parameters:
        attribute - the attribute.
      • visitUnknown

        public void visitUnknown​(Unknown attribute)
        Description copied from interface: Visitor
        Visits an Unknown attribute.
        Specified by:
        visitUnknown in interface Visitor
        Parameters:
        attribute - the attribute.