Bug 535691 - [15] @see, @link and @linkplain Javadoc tags for modules in
UI
Change-Id: Ic94df3018474cabec286976e6fbbb81b2f7e02a9
Signed-off-by: Kalyan Prasad Tatavarthi <kalyan_prasad@in.ibm.com>
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/viewsupport/JavaElementLinks.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/viewsupport/JavaElementLinks.java
index 8b96d2d..195b162 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/viewsupport/JavaElementLinks.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/viewsupport/JavaElementLinks.java
@@ -390,11 +390,11 @@
String refModuleName= null;
// replace '[' manually, since URI confuses it for an IPv6 address as per RFC 2732:
IJavaElement element= JavaCore.create(segments[1].replace(LINK_BRACKET_REPLACEMENT, '['));
-
+ boolean canReferModuleName= canReferModuleName(element);
if (segments.length > 2) {
String refTypeName= segments[2];
int index= refTypeName.indexOf('/');
- if (index != -1) {
+ if (index != -1 && canReferModuleName) {
refModuleName= refTypeName.substring(0, index);
refTypeName= refTypeName.substring(index+1);
}
@@ -503,6 +503,7 @@
}
if (type == null &&
refModuleName == null &&
+ canReferModuleName &&
segments.length <= 3) {
return getModule(element, refTypeName);
}
@@ -528,6 +529,18 @@
}
return null;
}
+
+ private static boolean canReferModuleName(IJavaElement element) {
+ boolean canRefer= false;
+ if (element != null) {
+ IJavaProject javaProject= element.getJavaProject();
+ if (javaProject != null) {
+ canRefer = JavaModelUtil.is15OrHigher(javaProject);
+ }
+ }
+ return canRefer;
+ }
+
private static IType resolvePackageInfoType(IPackageFragment pack, String refTypeName) throws JavaModelException {
// Note: The scoping rules of JLS7 6.3 are broken for package-info.java, see https://bugs.eclipse.org/216451#c4
// We follow the javadoc tool's implementation and only support fully-qualified type references: