13c13
< 
---
> import java.util.regex.*;
466c466
< 		return result;
---
> 		return result ;
479c479
< 	private final String unqualifiedNameInImportedClasses( final String unqualifiedClassName )
---
> 	private final String unqualifiedNameInImportedClasses( String unqualifiedClassName )
485c485,491
< 
---
> 		
> 		// Look out for the generics !!
> 		// Remove them before searching
> 		String[] results = removeGenerics(unqualifiedClassName);
> 		unqualifiedClassName = results[0];
> 		String generics = results[1];
> 		
488a495
> 		//System.out.println("unqualifiedNameInImportedClasses: suffix [" + suffix + "]");
508c515
< 		return candidate;
---
> 		return candidate == null ? candidate : candidate + generics;
511c518
< 	private final XClass unqualifiedNameInImportedClassesInnerClasses( final String unqualifiedClassName )
---
> 	private final XClass unqualifiedNameInImportedClassesInnerClasses( String unqualifiedClassName )
519d525
< 
553c559
< 	private final String unqualifiedNameInInnerClasses( final String unqualifiedClassName )
---
> 	private final String unqualifiedNameInInnerClasses( String unqualifiedClassName )
563c569,572
< 
---
> 		String[] results = removeGenerics(unqualifiedClassName);
> 		unqualifiedClassName = results[0];
> 		String generics = results[1];
> 		
575c584
< 		return candidate;
---
> 		return candidate == null ? candidate : candidate + generics;
606c615
< 	private final String unqualifiedNameInInnerClassesOfSuperClass( final String unqualifiedClassName )
---
> 	private final String unqualifiedNameInInnerClassesOfSuperClass( String unqualifiedClassName )
608,609c617,621
<         XClass clazz = getXJavaDoc().getXClass(getQualifiedName());
<         XClass superClazz = clazz.getSuperclass();
---
> 		XClass clazz = getXJavaDoc().getXClass(getQualifiedName());
> 		XClass superClazz = clazz.getSuperclass();
> 		String[] results = removeGenerics(unqualifiedClassName);
> 		unqualifiedClassName = results[0];
> 		String generics = results[1];
618c630
<                     return qualifiedClassName;
---
>                     return qualifiedClassName + generics;
632c644
< 	private final String unqualifiedNameInImportedPackages( final String unqualifiedClassName )
---
> 	private final String unqualifiedNameInImportedPackages( String unqualifiedClassName )
638,639c650,654
< 
< 		final String suffix = "." + unqualifiedClassName;
---
> 		String[] results = removeGenerics(unqualifiedClassName);
> 		unqualifiedClassName = results[0];
> 		String generics = results[1];
> 		
> 		final String suffix = "." + unqualifiedClassName ;
641d655
< 
660c674
< 		return candidate;
---
> 		return candidate == null ? candidate : candidate + generics;
670c684
< 	private final String unqualifiedNameInJavaDotLang( final String unqualifiedClassName )
---
> 	private final String unqualifiedNameInJavaDotLang( String unqualifiedClassName )
671a686,689
> 		String[] results = removeGenerics(unqualifiedClassName);
> 		unqualifiedClassName = results[0];
> 		String generics = results[1];
> 		
673d690
< 
676c693
< 			return qualifiedClassName;
---
> 			return qualifiedClassName + generics;
690c707
< 	private final String unqualifiedNameInTheSamePackage( final String unqualifiedClassName )
---
> 	private final String unqualifiedNameInTheSamePackage( String unqualifiedClassName )
693c710,713
< 
---
> 		String[] results = removeGenerics(unqualifiedClassName);
> 		unqualifiedClassName = results[0];
> 		String generics = results[1];
> 		
705c725
< 			return qualifiedClassName;
---
> 			return qualifiedClassName + generics;
714c734
< 	private final String unqualifiedNameInTheSameClassAsAnInnerClass( final String unqualifiedClassName )
---
> 	private final String unqualifiedNameInTheSameClassAsAnInnerClass( String unqualifiedClassName )
715a736,739
> 		String[] results = removeGenerics(unqualifiedClassName);
> 		unqualifiedClassName = results[0];
> 		String generics = results[1];
> 		
720c744
< 			return qualifiedClassName;
---
> 			return qualifiedClassName + generics;
733c757
< 			return qualifiedClassName;
---
> 			return qualifiedClassName + generics;
773a798,813
> 	
> 	/**
> 	 * Remove the generics annotation if there is one from the
> 	 * unqualifiedClassName and return it as first element of the String array.
> 	 * Return the generics as 2snd element of the String array if there is one.
> 	 * If there is none, return an empty string.
> 	 */
> 	private String[] removeGenerics(String unqualifiedClassName) {
> 		int index;
> 		String generics = "";
> 		if ((index = unqualifiedClassName.indexOf("<")) != -1) {
> 			generics = unqualifiedClassName.substring(index);
> 			unqualifiedClassName = unqualifiedClassName.substring(0, index);
> 		}
> 		return new String[] { unqualifiedClassName, generics };
> 	}
