private void buildNewArray(NewArrayTree tree) { currentBlock.elements.add(tree); build(Lists.reverse(tree.dimensions())); build(Lists.reverse(tree.initializers())); }
private void buildNewArray(NewArrayTree tree) { currentBlock.elements.add(tree); build(tree.dimensions()); build(tree.initializers()); }
private void buildNewArray(NewArrayTree tree) { currentBlock.elements.add(tree); build(tree.dimensions()); build(tree.initializers()); }
private static boolean isExcludeElement(AssignmentExpressionTree assignment) { ExpressionTree expression = assignment.expression(); boolean isExcludeElement = EXCLUDE_ELEMENTS.contains(assignment.variable().toString()); boolean arrayNotEmpty = expression.is(Tree.Kind.NEW_ARRAY) && !((NewArrayTree) expression).initializers().isEmpty(); return isExcludeElement && arrayNotEmpty; } }
private static Stream<ExpressionTree> extractValues(ExpressionTree argument) { ExpressionTree expression = argument; if (expression.is(Tree.Kind.ASSIGNMENT)) { expression = ((AssignmentExpressionTree) expression).expression(); } if (expression.is(Tree.Kind.NEW_ARRAY)) { return ((NewArrayTree) expression).initializers().stream() .flatMap(SpringScanDefaultPackageCheck::extractValues); } return Stream.of(expression); }
private static Stream<ExpressionTree> extractValues(ExpressionTree argument) { ExpressionTree expression = argument; if (expression.is(Tree.Kind.ASSIGNMENT)) { expression = ((AssignmentExpressionTree) expression).expression(); } if (expression.is(Tree.Kind.NEW_ARRAY)) { return ((NewArrayTree) expression).initializers().stream() .flatMap(SpringComposedRequestMappingCheck::extractValues); } return Stream.of(expression); } }
private List<String> getValueFromExpression(ExpressionTree expression) { List<String> args = Lists.newArrayList(); if (expression.is(Tree.Kind.STRING_LITERAL)) { args.add(trimQuotes(((LiteralTree) expression).value())); } else if (expression.is(Tree.Kind.NEW_ARRAY)) { for (ExpressionTree initializer : ((NewArrayTree) expression).initializers()) { args.addAll(getValueFromExpression(initializer)); } } return args; }
private static boolean isExcludeElement(AssignmentExpressionTree assignment) { ExpressionTree expression = assignment.expression(); boolean isExcludeElement = EXCLUDE_ELEMENTS.contains(assignment.variable().toString()); boolean arrayNotEmpty = expression.is(Tree.Kind.NEW_ARRAY) && !((NewArrayTree) expression).initializers().isEmpty(); return isExcludeElement && arrayNotEmpty; } }
private static Stream<ExpressionTree> extractValues(ExpressionTree argument) { ExpressionTree expression = argument; if (expression.is(Tree.Kind.ASSIGNMENT)) { expression = ((AssignmentExpressionTree) expression).expression(); } if (expression.is(Tree.Kind.NEW_ARRAY)) { return ((NewArrayTree) expression).initializers().stream() .flatMap(SpringScanDefaultPackageCheck::extractValues); } return Stream.of(expression); }
private static List<String> getValueFromExpression(ExpressionTree expression) { List<String> args = Lists.newArrayList(); if (expression.is(Tree.Kind.STRING_LITERAL)) { args.add(LiteralUtils.trimQuotes(((LiteralTree) expression).value())); } else if (expression.is(Tree.Kind.NEW_ARRAY)) { for (ExpressionTree initializer : ((NewArrayTree) expression).initializers()) { args.addAll(getValueFromExpression(initializer)); } } return args; } }
@Override public void visitAnnotation(AnnotationTree annotationTree) { if (isArrayInitialized(annotationTree)) { NewArrayTree arrayTree = (NewArrayTree) annotationTree.arguments().get(0); if (isAllSameAnnotation(arrayTree.initializers()) && isAnnotationRepeatable(arrayTree.initializers().get(0))) { context.addIssue(annotationTree, this, "Remove the '" + getAnnotationName(annotationTree) + "' wrapper from this annotation group"); } } super.visitAnnotation(annotationTree); }
private void executeNewArray(NewArrayTree newArrayTree) { int numberDimensions = (int) newArrayTree.dimensions().stream().map(ArrayDimensionTree::expression).filter(Objects::nonNull).count(); programState = programState.unstackValue(numberDimensions).state; programState = programState.unstackValue(newArrayTree.initializers().size()).state; SymbolicValue svNewArray = constraintManager.createSymbolicValue(newArrayTree); programState = programState.stackValue(svNewArray); programState = svNewArray.setSingleConstraint(programState, ObjectConstraint.NOT_NULL); }
private void executeNewArray(NewArrayTree newArrayTree) { int numberDimensions = (int) newArrayTree.dimensions().stream().map(ArrayDimensionTree::expression).filter(Objects::nonNull).count(); programState = programState.unstackValue(numberDimensions).state; programState = programState.unstackValue(newArrayTree.initializers().size()).state; SymbolicValue svNewArray = constraintManager.createSymbolicValue(newArrayTree); programState = programState.stackValue(svNewArray); programState = svNewArray.setSingleConstraint(programState, ObjectConstraint.NOT_NULL); }
private static boolean hasMoreThanOneValue(AssignmentExpressionTree assignment) { if (assignment.expression().is(Tree.Kind.NEW_ARRAY)) { return ((NewArrayTree) assignment.expression()).initializers().size() > 1; } return false; }
private static boolean hasMoreThanOneValue(AssignmentExpressionTree assignment) { if (assignment.expression().is(Tree.Kind.NEW_ARRAY)) { return ((NewArrayTree) assignment.expression()).initializers().size() > 1; } return false; }
@Override public void visitNewArray(NewArrayTree tree) { scan(tree.type()); scan(tree.dimensions()); scan(tree.initializers()); }
private void executeNewArray(NewArrayTree newArrayTree) { programState = programState.unstackValue(newArrayTree.initializers().size()).state; SymbolicValue svNewArray = constraintManager.createSymbolicValue(newArrayTree); programState = programState.stackValue(svNewArray); programState = svNewArray.setSingleConstraint(programState, ObjectConstraint.NOT_NULL); }
@Override public void visitNewArray(NewArrayTree tree) { scan(tree.type()); scan(tree.dimensions()); scan(tree.initializers()); }
@Override public void visitVariable(VariableTree tree) { ExpressionTree initializer = tree.initializer(); boolean arrayNotInitialized = initializer != null && initializer.is(Kind.NEW_ARRAY) && ((NewArrayTree) initializer).initializers().isEmpty(); boolean isFinalOrNoSemantic = context.getSemanticModel() == null || tree.symbol().isFinal(); if (arrayNotInitialized || !isFinalOrNoSemantic) { super.visitVariable(tree); } }
@Override public void visitVariable(VariableTree tree) { ExpressionTree initializer = tree.initializer(); boolean arrayNotInitialized = initializer != null && initializer.is(Kind.NEW_ARRAY) && ((NewArrayTree) initializer).initializers().isEmpty(); boolean isFinalOrNoSemantic = context.getSemanticModel() == null || tree.symbol().isFinal(); if (arrayNotInitialized || !isFinalOrNoSemantic) { super.visitVariable(tree); } }