blob: 452a7b9c85195ccb2d00f8b13acb462c4c42eaf7 [file] [log] [blame]
public class AnnotationArgConverter {
public GrAnnotationMemberValue convert(PsiAnnotationMemberValue value) {
final StringBuilder buffer = new StringBuilder();
buffer.append("@A(");
<selection>value.accept(new JavaElementVisitor() {
@Override
public void visitExpression(PsiExpression expression) {
buffer.append(expression.getText());
}
@Override
public void visitNewExpression(PsiNewExpression expression) {
PsiArrayInitializerExpression arrayInitializer = expression.getArrayInitializer();
if (arrayInitializer == null) {
super.visitNewExpression(expression);
}
else {
buffer.append(")");
}
}
})</selection>;
buffer.append(")");
try {
return GroovyPsiElementFactory.getInstance(value.getProject()).createAnnotationFromText(buffer.toString());
}
catch (IncorrectOperationException e) {
return null;
}
}
}