public IResource[] refreshStatus(final IResource resource, final int depth) throws SVNException {
public IResource[] refreshStatus(final IContainer resource, final boolean recursive) throws SVNException {
    public IResource[] refreshStatus(final IResource resource, final int depth) throws SVNException {    	if (SVNWorkspaceRoot.isLinkedResource(resource)) { return new IResource[0]; }    	final StatusUpdateStrategy strategy =     		(depth == IResource.DEPTH_INFINITE) 							? (StatusUpdateStrategy) new RecursiveStatusUpdateStrategy(statusCache)							: (StatusUpdateStrategy) new NonRecursiveStatusUpdateStrategy(statusCache);		try {			List refreshedResources = updateCache(strategy.statusesToUpdate(resource), resource);			Set resourcesToRefresh = resourcesToRefresh(resource, depth, IContainer.INCLUDE_PHANTOMS, refreshedResources.size());			for (Iterator iter = refreshedResources.iterator(); iter.hasNext();) {				resourcesToRefresh.remove(iter.next());			}			//Resources which were not refreshed above (e.g. deleted resources)			//We do it with depth = infinite, so the whole deleted trees are refreshed.			for (Iterator it = resourcesToRefresh.iterator(); it.hasNext();) {				IResource res = (IResource) it.next();				if ((res.getType() != IResource.FILE) && res.isPhantom())				{					Set children = resourcesToRefresh(res, IResource.DEPTH_INFINITE, IContainer.INCLUDE_PHANTOMS | IContainer.INCLUDE_TEAM_PRIVATE_MEMBERS, 0);					for (Iterator iter = children.iterator(); iter.hasNext();) {						IResource child = (IResource) iter.next();						statusCache.removeStatus(child);						refreshedResources.add(child);					}				}				statusCache.removeStatus(res);				refreshedResources.add(res);			}			return (IResource[]) refreshedResources.toArray(new IResource[refreshedResources.size()]);		}		catch (CoreException e)		{			throw SVNException.wrapException(e);		}    }