throw new RuntimeException(memberTree.getKind().toString() + " " + memberTree);
@Override public GuardedByExpression visitMethodInvocation( MethodInvocationTree node, BinderContext context) { checkGuardedBy( node.getArguments().isEmpty() && node.getTypeArguments().isEmpty(), "Only nullary methods are allowed."); ExpressionTree methodSelect = node.getMethodSelect(); switch (methodSelect.getKind()) { case IDENTIFIER: { IdentifierTree identifier = (IdentifierTree) methodSelect; Symbol.MethodSymbol method = context.resolver.resolveMethod(node, identifier.getName()); checkGuardedBy(method != null, identifier.toString()); return bindSelect(computeBase(context, method), method); } case MEMBER_SELECT: { MemberSelectTree select = (MemberSelectTree) methodSelect; GuardedByExpression base = visit(select.getExpression(), context); checkGuardedBy(base != null, select.getExpression().toString()); Symbol.MethodSymbol method = context.resolver.resolveMethod(node, base, select.getIdentifier()); checkGuardedBy(method != null, select.toString()); return bindSelect(normalizeBase(context, method, base), method); } default: throw new IllegalGuardedBy(methodSelect.getKind().toString()); } }
private String opName(Kind kind) { switch (kind) { case EQUAL_TO: return "compareEqual"; case NOT_EQUAL_TO: return "compareNotEqual"; case LESS_THAN_EQUAL: return "lessThanEqual"; case LESS_THAN: return "lessThan"; case GREATER_THAN_EQUAL: return "greaterThanEqual"; case GREATER_THAN: return "greaterThan"; case PREFIX_INCREMENT: return "prefixInc"; case POSTFIX_INCREMENT: return "postfixInc"; case POSTFIX_DECREMENT: return "postfixDec"; case LOGICAL_COMPLEMENT: return "not"; case CONDITIONAL_OR: return "logicalOr"; case CONDITIONAL_AND: return "logicalAnd"; case PLUS: return "plus"; case PLUS_ASSIGNMENT: return "plusEqual"; case MINUS: return "minus"; case MINUS_ASSIGNMENT: return "minusEqual"; } throw new UnsupportedOperationException(kind.toString()); }
((com.sun.source.tree.Tree)oldT).getKind().toString() + " " + oldT.getClass().getName(); throw new AssertionError(msg);
String msg = ((com.sun.source.tree.Tree)t1).getKind().toString() + " " + t1.getClass().getName(); throw new AssertionError(msg);
@Override public GuardedByExpression visitMethodInvocation( MethodInvocationTree node, BinderContext context) { checkGuardedBy( node.getArguments().isEmpty() && node.getTypeArguments().isEmpty(), "Only nullary methods are allowed."); ExpressionTree methodSelect = node.getMethodSelect(); switch (methodSelect.getKind()) { case IDENTIFIER: { IdentifierTree identifier = (IdentifierTree) methodSelect; Symbol.MethodSymbol method = context.resolver.resolveMethod(node, identifier.getName()); checkGuardedBy(method != null, identifier.toString()); return bindSelect(computeBase(context, method), method); } case MEMBER_SELECT: { MemberSelectTree select = (MemberSelectTree) methodSelect; GuardedByExpression base = visit(select.getExpression(), context); checkGuardedBy(base != null, select.getExpression().toString()); Symbol.MethodSymbol method = context.resolver.resolveMethod(node, base, select.getIdentifier()); checkGuardedBy(method != null, select.toString()); return bindSelect(normalizeBase(context, method, base), method); } default: throw new IllegalGuardedBy(methodSelect.getKind().toString()); } }
public static <T extends Annotation> void addMethodCallInMethodBody(AnnotationValues<T> annotation, JCTree.JCAnnotation ast, JavacNode annotationNode, String methodWhereToAddName, java.util.List<String> methodToAddName, boolean addInFirstPosition) { JavacTreeMaker treeMaker = annotationNode.getTreeMaker(); JavacNode owner = annotationNode.up(); // the field where the @Annotation applies switch (owner.get().getClass().getSimpleName()) { case "JCClassDecl": JCClassDecl classDecl = (JCClassDecl) owner.get(); for (JCTree e : classDecl.defs) { if ("METHOD".equals(e.getKind().toString())) { JCMethodDecl md = (JCMethodDecl) e; if (methodWhereToAddName.equals(md.name.toString())) { JCExpression callIt=JavacHandlerUtil.chainDots(owner, methodToAddName.toArray(new String[0])); JCMethodInvocation factoryMethodCall=treeMaker.Apply(NIL_EXPRESSION, callIt, NIL_EXPRESSION); JCExpressionStatement exec = treeMaker.Exec(factoryMethodCall); if (addInFirstPosition) { md.body.stats = md.body.stats.prepend(exec); } else { md.body.stats = md.body.stats.append(exec); } } } } break; default: break; } owner.getAst().setChanged(); }
private static void analyzeLiteral( SourceContext context, JCTree.JCLiteral literal, int preferredPos, int endPos) { Source src = context.source; Tree.Kind kind = literal.getKind(); Object value = literal.getValue(); Range range = Range.create(src, preferredPos, endPos); Variable variable = new Variable(kind.toString(), preferredPos, range); if (nonNull(value)) { variable.fqcn = value.getClass().getCanonicalName(); variable.argumentIndex = context.argumentIndex; context.setArgumentFQCN(variable.fqcn); } else { variable.fqcn = "<null>"; variable.argumentIndex = context.argumentIndex; context.setArgumentFQCN(variable.fqcn); } src.getCurrentScope() .ifPresent( scope -> { scope.addVariable(variable); addSymbolIndex(src, scope, variable); }); }
/** Returns a {@code String} describing the {@code Tree.Kind} of the given {@code Tree}. */ private String kindString(Tree t) { return t.getKind().toString(); }
/** Returns a {@code String} describing the {@code Tree.Kind} of the given {@code Tree}. */ private String kindString(Tree t) { return t.getKind().toString(); }
/** Returns a {@code String} describing the {@code Tree.Kind} of the given {@code Tree}. */ private String kindString(Tree t) { return t.getKind().toString(); }