Class EventProducerScanner

  • All Implemented Interfaces:
    com.sun.source.tree.TreeVisitor<java.lang.Object,​com.sun.source.util.Trees>

    public class EventProducerScanner
    extends com.sun.source.util.TreePathScanner<java.lang.Object,​com.sun.source.util.Trees>
    Scanner to inspect the methods for method calls of 'post' on an EventBus and then figure out which class type is the argument of the post call.
    Author:
    Andi Hotz, (c) Sahits GmbH, 2016 Created on Aug 03, 2016
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private void addVariableDeclaration​(com.sun.source.tree.VariableTree node)  
      private java.lang.Class<?> getClassByName​(javax.lang.model.element.Name name)  
      private java.lang.Class<?> getClassByName​(javax.lang.model.element.Name name, java.lang.ClassLoader classLoader)  
      com.google.common.collect.Multimap<EventBusNameField,​java.lang.Class<?>> getEventBusPostEvent()  
      private java.lang.Class<?> getEventType​(com.sun.source.tree.IdentifierTree identExpr)  
      private java.lang.Class<?> getEventType​(com.sun.source.tree.NewClassTree newExpr)  
      java.lang.Object visitExpressionStatement​(com.sun.source.tree.ExpressionStatementTree node, com.sun.source.util.Trees trees)  
      java.lang.Object visitImport​(com.sun.source.tree.ImportTree node, com.sun.source.util.Trees trees)  
      java.lang.Object visitMethod​(com.sun.source.tree.MethodTree node, com.sun.source.util.Trees trees)  
      java.lang.Object visitVariable​(com.sun.source.tree.VariableTree node, com.sun.source.util.Trees trees)  
      • Methods inherited from class com.sun.source.util.TreePathScanner

        getCurrentPath, scan, scan
      • Methods inherited from class com.sun.source.util.TreeScanner

        reduce, scan, visitAnnotatedType, visitAnnotation, visitArrayAccess, visitArrayType, visitAssert, visitAssignment, visitBinary, visitBlock, visitBreak, visitCase, visitCatch, visitClass, visitCompilationUnit, visitCompoundAssignment, visitConditionalExpression, visitContinue, visitDoWhileLoop, visitEmptyStatement, visitEnhancedForLoop, visitErroneous, visitExports, visitForLoop, visitIdentifier, visitIf, visitInstanceOf, visitIntersectionType, visitLabeledStatement, visitLambdaExpression, visitLiteral, visitMemberReference, visitMemberSelect, visitMethodInvocation, visitModifiers, visitModule, visitNewArray, visitNewClass, visitOpens, visitOther, visitPackage, visitParameterizedType, visitParenthesized, visitPrimitiveType, visitProvides, visitRequires, visitReturn, visitSwitch, visitSynchronized, visitThrow, visitTry, visitTypeCast, visitTypeParameter, visitUnary, visitUnionType, visitUses, visitWhileLoop, visitWildcard
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • EventProducerScanner

        public EventProducerScanner​(java.util.List<EventBusNameField> eventBusNames)
    • Method Detail

      • getEventBusPostEvent

        public com.google.common.collect.Multimap<EventBusNameField,​java.lang.Class<?>> getEventBusPostEvent()
      • visitMethod

        public java.lang.Object visitMethod​(com.sun.source.tree.MethodTree node,
                                            com.sun.source.util.Trees trees)
        Specified by:
        visitMethod in interface com.sun.source.tree.TreeVisitor<java.lang.Object,​com.sun.source.util.Trees>
        Overrides:
        visitMethod in class com.sun.source.util.TreeScanner<java.lang.Object,​com.sun.source.util.Trees>
      • visitImport

        public java.lang.Object visitImport​(com.sun.source.tree.ImportTree node,
                                            com.sun.source.util.Trees trees)
        Specified by:
        visitImport in interface com.sun.source.tree.TreeVisitor<java.lang.Object,​com.sun.source.util.Trees>
        Overrides:
        visitImport in class com.sun.source.util.TreeScanner<java.lang.Object,​com.sun.source.util.Trees>
      • visitExpressionStatement

        public java.lang.Object visitExpressionStatement​(com.sun.source.tree.ExpressionStatementTree node,
                                                         com.sun.source.util.Trees trees)
        Specified by:
        visitExpressionStatement in interface com.sun.source.tree.TreeVisitor<java.lang.Object,​com.sun.source.util.Trees>
        Overrides:
        visitExpressionStatement in class com.sun.source.util.TreeScanner<java.lang.Object,​com.sun.source.util.Trees>
      • getEventType

        private java.lang.Class<?> getEventType​(com.sun.source.tree.IdentifierTree identExpr)
      • getEventType

        private java.lang.Class<?> getEventType​(com.sun.source.tree.NewClassTree newExpr)
      • getClassByName

        private java.lang.Class<?> getClassByName​(javax.lang.model.element.Name name)
      • getClassByName

        private java.lang.Class<?> getClassByName​(javax.lang.model.element.Name name,
                                                  java.lang.ClassLoader classLoader)
      • visitVariable

        public java.lang.Object visitVariable​(com.sun.source.tree.VariableTree node,
                                              com.sun.source.util.Trees trees)
        Specified by:
        visitVariable in interface com.sun.source.tree.TreeVisitor<java.lang.Object,​com.sun.source.util.Trees>
        Overrides:
        visitVariable in class com.sun.source.util.TreeScanner<java.lang.Object,​com.sun.source.util.Trees>
      • addVariableDeclaration

        private void addVariableDeclaration​(com.sun.source.tree.VariableTree node)