Class EventProducerScanner
- java.lang.Object
-
- com.sun.source.util.TreeScanner<R,P>
-
- com.sun.source.util.TreePathScanner<java.lang.Object,com.sun.source.util.Trees>
-
- ch.sahits.game.openpatrician.app.display.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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
EventProducerScanner.ProducerContext
-
Field Summary
Fields Modifier and Type Field Description private EventProducerScanner.ProducerContext
context
private java.util.List<EventBusNameField>
eventBusNames
private com.google.common.collect.Multimap<EventBusNameField,java.lang.Class<?>>
eventBusPostEvent
private java.util.Map<java.lang.String,java.lang.String>
imports
-
Constructor Summary
Constructors Constructor Description EventProducerScanner(java.util.List<EventBusNameField> eventBusNames)
-
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.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
-
-
-
-
Field Detail
-
eventBusNames
private final java.util.List<EventBusNameField> eventBusNames
-
eventBusPostEvent
private final com.google.common.collect.Multimap<EventBusNameField,java.lang.Class<?>> eventBusPostEvent
-
imports
private java.util.Map<java.lang.String,java.lang.String> imports
-
context
private EventProducerScanner.ProducerContext context
-
-
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 interfacecom.sun.source.tree.TreeVisitor<java.lang.Object,com.sun.source.util.Trees>
- Overrides:
visitMethod
in classcom.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 interfacecom.sun.source.tree.TreeVisitor<java.lang.Object,com.sun.source.util.Trees>
- Overrides:
visitImport
in classcom.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 interfacecom.sun.source.tree.TreeVisitor<java.lang.Object,com.sun.source.util.Trees>
- Overrides:
visitExpressionStatement
in classcom.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 interfacecom.sun.source.tree.TreeVisitor<java.lang.Object,com.sun.source.util.Trees>
- Overrides:
visitVariable
in classcom.sun.source.util.TreeScanner<java.lang.Object,com.sun.source.util.Trees>
-
addVariableDeclaration
private void addVariableDeclaration(com.sun.source.tree.VariableTree node)
-
-