extract method: avoid invalid elements (IDEA-112311)

This commit is contained in:
Anna Kozlova
2013-08-20 21:29:05 +04:00
parent efabbb0a52
commit d6b15746b4
4 changed files with 88 additions and 2 deletions
@@ -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;
}
}
}