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: