private void visitModule(ModuleNode node, String module) { addDependencyManagementBom(node, module); }
@Override public void visit(ASTNode[] nodes, SourceUnit source) { for (ASTNode astNode : nodes) { if (astNode instanceof ModuleNode) { visitModule((ModuleNode) astNode, getBomModule()); } } }
private void addDependencyManagementBom(ModuleNode node, String module) { AnnotatedNode annotated = getAnnotatedNode(node); if (annotated != null) { AnnotationNode bom = getAnnotation(annotated); List<Expression> expressions = new ArrayList<>( getConstantExpressions(bom.getMember("value"))); expressions.add(new ConstantExpression(module)); bom.setMember("value", new ListExpression(expressions)); } }
private List<ConstantExpression> getConstantExpressions(Expression valueExpression) { if (valueExpression instanceof ListExpression) { return getConstantExpressions((ListExpression) valueExpression); } if (valueExpression instanceof ConstantExpression && ((ConstantExpression) valueExpression).getValue() instanceof String) { return Arrays.asList((ConstantExpression) valueExpression); } return Collections.emptyList(); }