public ITypeHierarchy getTypeHierarchy(){ return fTypeHierarchy;
private ITypeHierarchy getTypeHierarchy(IType originalType, IProgressMonitor pm, IJavaProject project) throws JavaModelException { if (!originalType.getFullyQualifiedName().equals("java.lang.Object")) return originalType.newTypeHierarchy(project, pm); for (Iterator it= fRelevantConstraints.iterator(); it.hasNext(); ){ ITypeConstraint tc= (ITypeConstraint)it.next(); if (tc instanceof SimpleTypeConstraint){ SimpleTypeConstraint stc= (SimpleTypeConstraint)tc; ConstraintVariable left= stc.getLeft(); ConstraintVariable right= stc.getRight(); if (left.equals(fCv) && stc.isSubtypeConstraint()){ String typeName= right.getBinding().getQualifiedName(); IType type= JavaModelUtil.findType(project, typeName); return type.newTypeHierarchy(project, pm); } if (right.equals(fCv) && stc.isSubtypeConstraint()){ String typeName= left.getBinding().getQualifiedName(); IType type= JavaModelUtil.findType(project, typeName); return type.newTypeHierarchy(project, pm); } } } return originalType.newTypeHierarchy(project, pm);
	public ITypeHierarchy getTypeHierarchy(){		return fTypeHierarchy;	}