protected abstract void run(SVNTeamProvider provider, SyncInfoSet set, IProgressMonitor monitor)  throws InvocationTargetException, InterruptedException;
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {  SyncInfoSet syncSet = getSyncInfoSet(); if (!promptForConflictHandling(getShell(), syncSet)) return;  final Map projectSyncInfos = getProjectSyncInfoSetMap(syncSet); monitor.beginTask(null, projectSyncInfos.size() * 100); for (Iterator iter = projectSyncInfos.keySet().iterator(); iter.hasNext(); ) { final IProject project = (IProject) iter.next();    SVNTeamProvider provider = (SVNTeamProvider)RepositoryProvider.getProvider(project, SVNUIPlugin.PROVIDER_ID); if (provider != null) { run(provider, (SyncInfoSet)projectSyncInfos.get(project), Policy.subMonitorFor(monitor,100)); } } monitor.done(); }
	protected abstract void run(SVNTeamProvider provider, SyncInfoSet set, IProgressMonitor monitor)  throws InvocationTargetException, InterruptedException;