org.eclipse.xtext.ui.refactoring.impl
Class AbstractReferenceUpdater

java.lang.Object
  extended by org.eclipse.xtext.ui.refactoring.impl.AbstractReferenceUpdater
All Implemented Interfaces:
IReferenceUpdater
Direct Known Subclasses:
DefaultReferenceUpdater, EmfResourceReferenceUpdater

public abstract class AbstractReferenceUpdater
extends java.lang.Object
implements IReferenceUpdater

Abstract base class to update the references to renamed elements. Sorts all references by project and uses a separate resource set for each project to assert proper initialization. Updates are performed in clusters of 20 (default) referring resources.

Author:
Jan Koehnlein - Initial contribution and API, Holger Schill

Constructor Summary
AbstractReferenceUpdater()
           
 
Method Summary
protected  void createClusteredReferenceUpdates(ElementRenameArguments elementRenameArguments, com.google.common.collect.Multimap<org.eclipse.emf.common.util.URI,IReferenceDescription> resource2references, org.eclipse.emf.ecore.resource.ResourceSet resourceSet, IRefactoringUpdateAcceptor updateAcceptor, StatusWrapper status, org.eclipse.core.runtime.IProgressMonitor monitor)
           
 void createReferenceUpdates(ElementRenameArguments elementRenameArguments, java.lang.Iterable<IReferenceDescription> referenceDescriptions, IRefactoringUpdateAcceptor updateAcceptor, org.eclipse.core.runtime.IProgressMonitor monitor)
           
protected abstract  void createReferenceUpdates(ElementRenameArguments elementRenameArguments, com.google.common.collect.Multimap<org.eclipse.emf.common.util.URI,IReferenceDescription> resource2references, org.eclipse.emf.ecore.resource.ResourceSet resourceSet, IRefactoringUpdateAcceptor updateAcceptor, org.eclipse.core.runtime.IProgressMonitor monitor)
           
protected  void createReferenceUpdatesForCluster(ElementRenameArguments elementRenameArguments, com.google.common.collect.Multimap<org.eclipse.emf.common.util.URI,IReferenceDescription> resource2references, org.eclipse.emf.ecore.resource.ResourceSet resourceSet, IRefactoringUpdateAcceptor updateAcceptor, StatusWrapper status, org.eclipse.core.runtime.IProgressMonitor monitor)
           
protected  int getClusterSize()
           
protected  void handleCannotLoadReferringElement(IReferenceDescription referenceDescription, StatusWrapper status)
           
protected  void handleCannotResolveExistingReference(org.eclipse.emf.ecore.EObject sourceEObject, IReferenceDescription referenceDescription, StatusWrapper status)
           
protected  java.util.List<org.eclipse.emf.common.util.URI> loadReferringResources(org.eclipse.emf.ecore.resource.ResourceSet resourceSet, java.lang.Iterable<org.eclipse.emf.common.util.URI> referringResourceURIs, StatusWrapper status, org.eclipse.core.runtime.IProgressMonitor monitor)
           
protected  boolean loadTargetResources(org.eclipse.emf.ecore.resource.ResourceSet resourceSet, ElementRenameArguments elementRenameArguments, StatusWrapper status, org.eclipse.core.runtime.IProgressMonitor monitor)
           
protected  org.eclipse.emf.ecore.EObject resolveReference(org.eclipse.emf.ecore.EObject referringElement, IReferenceDescription referenceDescription)
           
protected  java.util.List<IReferenceDescription> resolveReferenceProxies(org.eclipse.emf.ecore.resource.ResourceSet resourceSet, java.util.Collection<IReferenceDescription> values, StatusWrapper status, org.eclipse.core.runtime.IProgressMonitor monitor)
           
protected  void unloadNonTargetResources(org.eclipse.emf.ecore.resource.ResourceSet resourceSet, java.util.Set<org.eclipse.emf.ecore.resource.Resource> targetResources)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractReferenceUpdater

public AbstractReferenceUpdater()
Method Detail

createReferenceUpdates

public void createReferenceUpdates(ElementRenameArguments elementRenameArguments,
                                   java.lang.Iterable<IReferenceDescription> referenceDescriptions,
                                   IRefactoringUpdateAcceptor updateAcceptor,
                                   org.eclipse.core.runtime.IProgressMonitor monitor)
Specified by:
createReferenceUpdates in interface IReferenceUpdater

createClusteredReferenceUpdates

protected void createClusteredReferenceUpdates(ElementRenameArguments elementRenameArguments,
                                               com.google.common.collect.Multimap<org.eclipse.emf.common.util.URI,IReferenceDescription> resource2references,
                                               org.eclipse.emf.ecore.resource.ResourceSet resourceSet,
                                               IRefactoringUpdateAcceptor updateAcceptor,
                                               StatusWrapper status,
                                               org.eclipse.core.runtime.IProgressMonitor monitor)

unloadNonTargetResources

protected void unloadNonTargetResources(org.eclipse.emf.ecore.resource.ResourceSet resourceSet,
                                        java.util.Set<org.eclipse.emf.ecore.resource.Resource> targetResources)

getClusterSize

protected int getClusterSize()

createReferenceUpdatesForCluster

protected void createReferenceUpdatesForCluster(ElementRenameArguments elementRenameArguments,
                                                com.google.common.collect.Multimap<org.eclipse.emf.common.util.URI,IReferenceDescription> resource2references,
                                                org.eclipse.emf.ecore.resource.ResourceSet resourceSet,
                                                IRefactoringUpdateAcceptor updateAcceptor,
                                                StatusWrapper status,
                                                org.eclipse.core.runtime.IProgressMonitor monitor)

resolveReferenceProxies

protected java.util.List<IReferenceDescription> resolveReferenceProxies(org.eclipse.emf.ecore.resource.ResourceSet resourceSet,
                                                                        java.util.Collection<IReferenceDescription> values,
                                                                        StatusWrapper status,
                                                                        org.eclipse.core.runtime.IProgressMonitor monitor)

resolveReference

protected org.eclipse.emf.ecore.EObject resolveReference(org.eclipse.emf.ecore.EObject referringElement,
                                                         IReferenceDescription referenceDescription)

handleCannotLoadReferringElement

protected void handleCannotLoadReferringElement(IReferenceDescription referenceDescription,
                                                StatusWrapper status)

handleCannotResolveExistingReference

protected void handleCannotResolveExistingReference(org.eclipse.emf.ecore.EObject sourceEObject,
                                                    IReferenceDescription referenceDescription,
                                                    StatusWrapper status)

createReferenceUpdates

protected abstract void createReferenceUpdates(ElementRenameArguments elementRenameArguments,
                                               com.google.common.collect.Multimap<org.eclipse.emf.common.util.URI,IReferenceDescription> resource2references,
                                               org.eclipse.emf.ecore.resource.ResourceSet resourceSet,
                                               IRefactoringUpdateAcceptor updateAcceptor,
                                               org.eclipse.core.runtime.IProgressMonitor monitor)

loadTargetResources

protected boolean loadTargetResources(org.eclipse.emf.ecore.resource.ResourceSet resourceSet,
                                      ElementRenameArguments elementRenameArguments,
                                      StatusWrapper status,
                                      org.eclipse.core.runtime.IProgressMonitor monitor)

loadReferringResources

protected java.util.List<org.eclipse.emf.common.util.URI> loadReferringResources(org.eclipse.emf.ecore.resource.ResourceSet resourceSet,
                                                                                 java.lang.Iterable<org.eclipse.emf.common.util.URI> referringResourceURIs,
                                                                                 StatusWrapper status,
                                                                                 org.eclipse.core.runtime.IProgressMonitor monitor)