diff --git a/java/java-psi-impl/src/com/intellij/codeInsight/javadoc/JavaDocInfoGenerator.java b/java/java-psi-impl/src/com/intellij/codeInsight/javadoc/JavaDocInfoGenerator.java index 8db545ee82ba..33e5539615aa 100644 --- a/java/java-psi-impl/src/com/intellij/codeInsight/javadoc/JavaDocInfoGenerator.java +++ b/java/java-psi-impl/src/com/intellij/codeInsight/javadoc/JavaDocInfoGenerator.java @@ -253,13 +253,13 @@ public class JavaDocInfoGenerator { public static String generateSignature(PsiElement element) { StringBuilder buf = new StringBuilder(); if (element instanceof PsiClass) { - if (generateClassSignature(buf, (PsiClass)element)) return null; + if (generateClassSignature(buf, (PsiClass)element, false)) return null; } else if (element instanceof PsiField) { - generateFieldSignature(buf, (PsiField)element); + generateFieldSignature(buf, (PsiField)element, false); } else if (element instanceof PsiMethod) { - generateMethodSignature(buf, (PsiMethod)element); + generateMethodSignature(buf, (PsiMethod)element, false); } return buf.toString(); } @@ -307,7 +307,7 @@ public class JavaDocInfoGenerator { } buffer.append("
");
-    if (generateClassSignature(buffer, aClass)) return;
+    if (generateClassSignature(buffer, aClass, true)) return;
     buffer.append("
"); //buffer.append("
"); @@ -321,8 +321,8 @@ public class JavaDocInfoGenerator { generateEpilogue(buffer); } - private static boolean generateClassSignature(StringBuilder buffer, PsiClass aClass) { - generateAnnotations(buffer, aClass); + private static boolean generateClassSignature(StringBuilder buffer, PsiClass aClass, boolean generateLink) { + generateAnnotations(buffer, aClass, generateLink); String modifiers = PsiFormatUtil.formatModifiers(aClass, PsiFormatUtilBase.JAVADOC_MODIFIERS_ONLY); if (!modifiers.isEmpty()) { buffer.append(modifiers); @@ -355,7 +355,7 @@ public class JavaDocInfoGenerator { } else { for (int i = 0; i < refs.length; i++) { - generateType(buffer, refs[i], aClass); + generateType(buffer, refs[i], aClass, generateLink); if (i < refs.length - 1) { buffer.append(", "); } @@ -369,7 +369,7 @@ public class JavaDocInfoGenerator { if (refs.length > 0) { buffer.append("implements "); for (int i = 0; i < refs.length; i++) { - generateType(buffer, refs[i], aClass); + generateType(buffer, refs[i], aClass, generateLink); if (i < refs.length - 1) { buffer.append(", "); } @@ -472,7 +472,7 @@ public class JavaDocInfoGenerator { } buffer.append("
");
-    generateFieldSignature(buffer, field);
+    generateFieldSignature(buffer, field, true);
     buffer.append("
"); //buffer.append("
"); @@ -487,14 +487,14 @@ public class JavaDocInfoGenerator { generateEpilogue(buffer); } - private static void generateFieldSignature(StringBuilder buffer, PsiField field) { - generateAnnotations(buffer, field); + private static void generateFieldSignature(StringBuilder buffer, PsiField field, boolean generateLink) { + generateAnnotations(buffer, field, generateLink); String modifiers = PsiFormatUtil.formatModifiers(field, PsiFormatUtilBase.JAVADOC_MODIFIERS_ONLY); if (!modifiers.isEmpty()) { buffer.append(modifiers); buffer.append(" "); } - generateType(buffer, field.getType(), field); + generateType(buffer, field.getType(), field, generateLink); buffer.append(" "); buffer.append(""); buffer.append(field.getName()); @@ -696,17 +696,21 @@ public class JavaDocInfoGenerator { } } - private static void generateAnnotations(@NonNls @NotNull StringBuilder buffer, @NotNull PsiModifierListOwner owner) { + private static void generateAnnotations(@NonNls @NotNull StringBuilder buffer, @NotNull PsiModifierListOwner owner, boolean generateLink) { final PsiModifierList ownerModifierList = owner.getModifierList(); if (ownerModifierList == null) return; - generateAnnotations(buffer, owner, ownerModifierList.getAnnotations(), false); + generateAnnotations(buffer, owner, ownerModifierList.getAnnotations(), false, generateLink); final PsiAnnotation[] externalAnnotations = ExternalAnnotationsManager.getInstance(owner.getProject()).findExternalAnnotations(owner); if (externalAnnotations != null) { - generateAnnotations(buffer, owner, externalAnnotations, true); + generateAnnotations(buffer, owner, externalAnnotations, true, generateLink); } } - private static void generateAnnotations(StringBuilder buffer, PsiModifierListOwner owner, PsiAnnotation[] annotations, boolean external) { + private static void generateAnnotations(StringBuilder buffer, + PsiModifierListOwner owner, + PsiAnnotation[] annotations, + boolean external, + boolean generateLink) { PsiManager manager = owner.getManager(); for (PsiAnnotation annotation : annotations) { @@ -718,7 +722,7 @@ public class JavaDocInfoGenerator { if (AnnotationUtil.isAnnotated(annotationType, "java.lang.annotation.Documented", false)) { final PsiClassType type = JavaPsiFacade.getInstance(manager.getProject()).getElementFactory().createType(annotationType, PsiSubstitutor.EMPTY); buffer.append("@"); - generateType(buffer, type, owner); + generateType(buffer, type, owner, generateLink); final PsiNameValuePair[] attributes = annotation.getParameterList().getAttributes(); if (attributes.length > 0) { buffer.append("("); @@ -764,7 +768,7 @@ public class JavaDocInfoGenerator { buffer.append(modifiers); buffer.append(" "); } - generateAnnotations(buffer, parameter); + generateAnnotations(buffer, parameter, true); generateType(buffer, parameter.getType(), parameter); buffer.append(" "); buffer.append(""); @@ -809,7 +813,7 @@ public class JavaDocInfoGenerator { } buffer.append("
");
-    generateMethodSignature(buffer, method);
+    generateMethodSignature(buffer, method, true);
 
     buffer.append("
"); //buffer.append("
"); @@ -839,8 +843,8 @@ public class JavaDocInfoGenerator { generateEpilogue(buffer); } - private static void generateMethodSignature(StringBuilder buffer, PsiMethod method) { - generateAnnotations(buffer, method); + private static void generateMethodSignature(StringBuilder buffer, PsiMethod method, boolean generateLink) { + generateAnnotations(buffer, method, generateLink); String modifiers = PsiFormatUtil.formatModifiers(method, PsiFormatUtilBase.JAVADOC_MODIFIERS_ONLY); int indent = 0; if (!modifiers.isEmpty()) { @@ -858,7 +862,7 @@ public class JavaDocInfoGenerator { } if (method.getReturnType() != null) { - indent += generateType(buffer, method.getReturnType(), method); + indent += generateType(buffer, method.getReturnType(), method, generateLink); buffer.append(" "); indent++; } @@ -873,8 +877,8 @@ public class JavaDocInfoGenerator { PsiParameter[] parms = method.getParameterList().getParameters(); for (int i = 0; i < parms.length; i++) { PsiParameter parm = parms[i]; - generateAnnotations(buffer, parm); - generateType(buffer, parm.getType(), method); + generateAnnotations(buffer, parm, generateLink); + generateType(buffer, parm.getType(), method, generateLink); buffer.append(" "); if (parm.getName() != null) { buffer.append(parm.getName());