diff --git a/vscode-extensions/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/parser/ParserJavadocProvider.java b/vscode-extensions/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/parser/ParserJavadocProvider.java index f4a215da3..6a9e887f3 100644 --- a/vscode-extensions/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/parser/ParserJavadocProvider.java +++ b/vscode-extensions/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/parser/ParserJavadocProvider.java @@ -15,6 +15,7 @@ import org.springframework.ide.vscode.commons.util.Log; import com.github.javaparser.ast.CompilationUnit; import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration; +import com.github.javaparser.ast.body.EnumConstantDeclaration; import com.github.javaparser.ast.body.EnumDeclaration; import com.github.javaparser.ast.body.FieldDeclaration; import com.github.javaparser.ast.body.MethodDeclaration; @@ -42,7 +43,7 @@ public class ParserJavadocProvider implements IJavadocProvider { public IJavadoc getJavadoc(IField field) { IType declaringType = field.getDeclaringType(); if (declaringType.isEnum()) { - FieldDeclaration declaration = createVisitorToFindField(field).visit(getEnumDeclaration(declaringType), null); + EnumConstantDeclaration declaration = createVisitorToFindEnumConstant(field).visit(getEnumDeclaration(declaringType), null); return declaration.getJavaDoc() == null ? null : new RawJavadoc(declaration.getJavaDoc().toString()); } else { FieldDeclaration declaration = createVisitorToFindField(field).visit(getClassOrInterfaceDeclaration(declaringType), null); @@ -162,4 +163,17 @@ public class ParserJavadocProvider implements IJavadocProvider { }; } + private GenericVisitorAdapter createVisitorToFindEnumConstant(IField field) { + return new GenericVisitorAdapter() { + @Override + public EnumConstantDeclaration visit(EnumConstantDeclaration n, Object arg) { + if (n.getName().equals(field.getElementName())) { + return n; + } else { + return null; + } + } + }; + } + }