private boolean isNewArrayInToArray(NewArrayTree node) { if (node.getDimensions().size() != 1) { return false; } ExpressionTree dim = node.getDimensions().get(0); ProcessingEnvironment env = checker.getProcessingEnvironment(); if (!TreeUtils.isMethodInvocation(dim, collectionSize, env)) { return false; } ExpressionTree rcvsize = ((MethodInvocationTree) dim).getMethodSelect(); if (!(rcvsize instanceof MemberSelectTree)) { return false; } rcvsize = ((MemberSelectTree) rcvsize).getExpression(); if (!(rcvsize instanceof IdentifierTree)) { return false; } Tree encl = getCurrentPath().getParentPath().getLeaf(); if (!TreeUtils.isMethodInvocation(encl, collectionToArray, env)) { return false; } ExpressionTree rcvtoarray = ((MethodInvocationTree) encl).getMethodSelect(); if (!(rcvtoarray instanceof MemberSelectTree)) { return false; } rcvtoarray = ((MemberSelectTree) rcvtoarray).getExpression(); if (!(rcvtoarray instanceof IdentifierTree)) { return false; } return ((IdentifierTree) rcvsize).getName() == ((IdentifierTree) rcvtoarray).getName(); }
public void handle(MethodInvocationTree tree, AnnotatedExecutableType method) { if (TreeUtils.isMethodInvocation(tree, systemGetProperty, env)) { List<? extends ExpressionTree> args = tree.getArguments(); assert args.size() == 1; ExpressionTree arg = args.get(0); if (arg.getKind() == Tree.Kind.STRING_LITERAL) { String literal = (String) ((LiteralTree) arg).getValue(); if (systemProperties.contains(literal)) { AnnotatedTypeMirror type = method.getReturnType(); type.replaceAnnotation(factory.NONNULL); } } } }