private IType[] getTypesNotSeeingMovedMember(IMember member, IProgressMonitor pm, RefactoringStatus status) throws JavaModelException { if (JdtFlags.isPublic(member) && JdtFlags.isPublic(fDestinationType)) return new IType[0]; HashSet<IType> blindAccessorTypes= new HashSet<>(); // referencing, but access to destination type illegal SearchResultGroup[] references= getReferences(member, new SubProgressMonitor(pm, 1), status); for (int i = 0; i < references.length; i++) { SearchMatch[] searchResults= references[i].getSearchResults(); for (int k= 0; k < searchResults.length; k++) { SearchMatch searchResult= searchResults[k]; IJavaElement element= SearchUtils.getEnclosingJavaElement(searchResult); IType type= (IType) element.getAncestor(IJavaElement.TYPE); if (type != null //reference can e.g. be an import declaration && ! blindAccessorTypes.contains(type) && ! isWithinMemberToMove(searchResult) && !isVisibleFrom(getDestinationType(), type)) { blindAccessorTypes.add(type); } } } if (fDelegateUpdating && isDelegateCreationAvailable(member)) { // ensure moved member is visible from the delegate IType type= member.getDeclaringType(); if (!blindAccessorTypes.contains(type) && !isVisibleFrom(getDestinationType(), type)) blindAccessorTypes.add(type); } return blindAccessorTypes.toArray(new IType[blindAccessorTypes.size()]); }
private IType[] getTypesNotSeeingMovedMember(IMember member, IProgressMonitor pm, RefactoringStatus status) throws JavaModelException { if (JdtFlags.isPublic(member) && JdtFlags.isPublic(fDestinationType)) return new IType[0]; HashSet blindAccessorTypes= new HashSet(); // referencing, but access to destination type illegal SearchResultGroup[] references= getReferences(member, new SubProgressMonitor(pm, 1), status); for (int i = 0; i < references.length; i++) { SearchMatch[] searchResults= references[i].getSearchResults(); for (int k= 0; k < searchResults.length; k++) { SearchMatch searchResult= searchResults[k]; IJavaElement element= SearchUtils.getEnclosingJavaElement(searchResult); IType type= (IType) element.getAncestor(IJavaElement.TYPE); if (type != null //reference can e.g. be an import declaration && ! blindAccessorTypes.contains(type) && ! isWithinMemberToMove(searchResult) && ! isVisibleFrom(member, getDestinationType(), type)) { blindAccessorTypes.add(type); } } } if (fDelegateUpdating && isDelegateCreationAvailable(member)) { // ensure moved member is visible from the delegate IType type= member.getDeclaringType(); if (!blindAccessorTypes.contains(type) && !isVisibleFrom(member, getDestinationType(), type)) blindAccessorTypes.add(type); } return (IType[]) blindAccessorTypes.toArray(new IType[blindAccessorTypes.size()]); }
private IType[] getTypesNotSeeingMovedMember(IMember member, IProgressMonitor pm, RefactoringStatus status) throws JavaModelException { if (JdtFlags.isPublic(member) && JdtFlags.isPublic(fDestinationType)) return new IType[0]; HashSet<IType> blindAccessorTypes= new HashSet<>(); // referencing, but access to destination type illegal SearchResultGroup[] references= getReferences(member, new SubProgressMonitor(pm, 1), status); for (int i = 0; i < references.length; i++) { SearchMatch[] searchResults= references[i].getSearchResults(); for (int k= 0; k < searchResults.length; k++) { SearchMatch searchResult= searchResults[k]; IJavaElement element= SearchUtils.getEnclosingJavaElement(searchResult); IType type= (IType) element.getAncestor(IJavaElement.TYPE); if (type != null //reference can e.g. be an import declaration && ! blindAccessorTypes.contains(type) && ! isWithinMemberToMove(searchResult) && !isVisibleFrom(getDestinationType(), type)) { blindAccessorTypes.add(type); } } } if (fDelegateUpdating && isDelegateCreationAvailable(member)) { // ensure moved member is visible from the delegate IType type= member.getDeclaringType(); if (!blindAccessorTypes.contains(type) && !isVisibleFrom(getDestinationType(), type)) blindAccessorTypes.add(type); } return blindAccessorTypes.toArray(new IType[blindAccessorTypes.size()]); }