Files
openide/java/java-tests/testData/refactoring/extractMethodNew/Expression.java
Alexandr Suhinin 0e860160e5 [extract method] fork tests
GitOrigin-RevId: 3aae5c738d48c38144f6a78c36738121831ae5a5
2020-03-31 12:32:01 +00:00

36 lines
975 B
Java

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;
}
}
}