mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-08-26 00:11:26 +07:00
extract method: avoid invalid elements (IDEA-112311)
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user