public IMember[] getMatchingElements() throws JavaModelException { Set result= new HashSet();  IType superType= getSuperType(); ITypeHierarchy hierarchy= superType.newTypeHierarchy(new NullProgressMonitor()); IType[] subTypes= hierarchy.getAllSubtypes(superType); for (int i = 0; i < subTypes.length; i++) { result.addAll(getMatchingMembers(hierarchy, subTypes[i])); } return (IMember[]) result.toArray(new IMember[result.size()]);
public IMember[] getMatchingElements(IProgressMonitor pm) throws JavaModelException { try{ pm.beginTask("", 2); Set result= new HashSet(); IType superType= getSuperType(new SubProgressMonitor(pm, 1)); ITypeHierarchy hierarchy= getSuperTypeHierarchy(new SubProgressMonitor(pm, 1)); IType[] subTypes= hierarchy.getAllSubtypes(superType); for (int i = 0; i < subTypes.length; i++) { result.addAll(getMatchingMembers(hierarchy, subTypes[i])); } return (IMember[]) result.toArray(new IMember[result.size()]); } finally{ pm.done(); }
	public IMember[] getMatchingElements() throws JavaModelException {		Set result= new HashSet();		//XXX pm		IType superType= getSuperType();		ITypeHierarchy hierarchy= superType.newTypeHierarchy(new NullProgressMonitor());		IType[] subTypes= hierarchy.getAllSubtypes(superType);		for (int i = 0; i < subTypes.length; i++) {			result.addAll(getMatchingMembers(hierarchy, subTypes[i]));		}		return (IMember[]) result.toArray(new IMember[result.size()]);	}