Class ChangeSerializer
- java.lang.Object
-
- org.eclipse.xtext.ide.serializer.impl.ChangeSerializer
-
- All Implemented Interfaces:
IChangeSerializer
public class ChangeSerializer extends java.lang.Object implements IChangeSerializer
- Since:
- 2.13
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.eclipse.xtext.ide.serializer.IChangeSerializer
IChangeSerializer.IModification<T extends org.eclipse.emf.common.notify.Notifier>
-
-
Constructor Summary
Constructors Constructor Description ChangeSerializer()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T extends org.eclipse.emf.common.notify.Notifier>
voidaddModification(T context, IChangeSerializer.IModification<T> modification)protected <T extends org.eclipse.emf.common.notify.Notifier>
voidapply(org.eclipse.emf.common.notify.Notifier context, IChangeSerializer.IModification<T> modification)voidapplyModifications(org.eclipse.xtext.util.IAcceptor<IEmfResourceChange> changeAcceptor)protected voidbeginRecordChanges(org.eclipse.emf.ecore.resource.Resource resource)protected RecordingResourceUpdatercreateResourceUpdater(org.eclipse.emf.ecore.resource.Resource resource)protected RelatedResourceUpdatercreateResourceUpdater(RelatedResourcesProvider.RelatedResource relatedResource)protected voidendRecordChanges(org.eclipse.xtext.util.IAcceptor<IEmfResourceChange> changeAcceptor)protected voidendRecordChanges(org.eclipse.xtext.util.IAcceptor<IEmfResourceChange> changeAcceptor, org.eclipse.core.runtime.IProgressMonitor monitor)org.eclipse.xtext.formatting2.regionaccess.ITextRegionDiffBuildergetModifiableDocument(org.eclipse.emf.ecore.resource.Resource resource)protected <T> TgetService(org.eclipse.emf.common.util.URI uri, java.lang.Class<T> clazz)protected <T> TgetService(org.eclipse.emf.ecore.resource.Resource resource, java.lang.Class<T> clazz)protected java.util.List<IResourceSnapshot>getSnapshots()booleanisUpdateCrossReferences()booleanisUpdateRelatedFiles()protected voidresetState()voidsetProgressMonitor(org.eclipse.core.runtime.IProgressMonitor monitor)If set,IChangeSerializer.addModification(Notifier, IModification)will report progress and check {#IProgressMonitor.isCanceled()on this monitor object.voidsetUpdateCrossReferences(boolean value)If set to true (that's the default), cross references affected by changes made inIChangeSerializer.addModification(Notifier, IModification)will be updated.voidsetUpdateRelatedFiles(boolean value)If set to true, (that's the default) andIChangeSerializer.isUpdateCrossReferences()is also set to true,IReferenceUpdaterwill also be called for files that are not directly changed by anIChangeSerializer.IModificationbut may contain cross references pointing to a changed files.
-
-
-
Method Detail
-
addModification
public <T extends org.eclipse.emf.common.notify.Notifier> void addModification(T context, IChangeSerializer.IModification<T> modification)- Specified by:
addModificationin interfaceIChangeSerializer
-
applyModifications
public void applyModifications(org.eclipse.xtext.util.IAcceptor<IEmfResourceChange> changeAcceptor)
- Specified by:
applyModificationsin interfaceIChangeSerializer
-
apply
protected <T extends org.eclipse.emf.common.notify.Notifier> void apply(org.eclipse.emf.common.notify.Notifier context, IChangeSerializer.IModification<T> modification)
-
beginRecordChanges
protected void beginRecordChanges(org.eclipse.emf.ecore.resource.Resource resource)
-
createResourceUpdater
protected RelatedResourceUpdater createResourceUpdater(RelatedResourcesProvider.RelatedResource relatedResource)
-
createResourceUpdater
protected RecordingResourceUpdater createResourceUpdater(org.eclipse.emf.ecore.resource.Resource resource)
-
endRecordChanges
protected void endRecordChanges(org.eclipse.xtext.util.IAcceptor<IEmfResourceChange> changeAcceptor)
-
endRecordChanges
protected void endRecordChanges(org.eclipse.xtext.util.IAcceptor<IEmfResourceChange> changeAcceptor, org.eclipse.core.runtime.IProgressMonitor monitor)
-
resetState
protected void resetState()
-
getModifiableDocument
public org.eclipse.xtext.formatting2.regionaccess.ITextRegionDiffBuilder getModifiableDocument(org.eclipse.emf.ecore.resource.Resource resource)
- Specified by:
getModifiableDocumentin interfaceIChangeSerializer
-
getService
protected <T> T getService(org.eclipse.emf.ecore.resource.Resource resource, java.lang.Class<T> clazz)
-
getService
protected <T> T getService(org.eclipse.emf.common.util.URI uri, java.lang.Class<T> clazz)
-
getSnapshots
protected java.util.List<IResourceSnapshot> getSnapshots()
-
isUpdateCrossReferences
public boolean isUpdateCrossReferences()
- Specified by:
isUpdateCrossReferencesin interfaceIChangeSerializer- See Also:
IChangeSerializer.setUpdateCrossReferences(boolean)
-
isUpdateRelatedFiles
public boolean isUpdateRelatedFiles()
- Specified by:
isUpdateRelatedFilesin interfaceIChangeSerializer- See Also:
IChangeSerializer.setUpdateRelatedFiles(boolean)
-
setUpdateCrossReferences
public void setUpdateCrossReferences(boolean value)
Description copied from interface:IChangeSerializerIf set to true (that's the default), cross references affected by changes made inIChangeSerializer.addModification(Notifier, IModification)will be updated. This involves at least all cross references from files for which there is anIChangeSerializer.IModification. IfIChangeSerializer.isUpdateRelatedFiles()is true, also all other cross references known byIResourceDescriptionsare updated. Example: When a modification changesmyElement.namefrom"foo"to"bar", all references pointing to"foo"are updated to"bar". Yes, that's a rename refactoring.- Specified by:
setUpdateCrossReferencesin interfaceIChangeSerializer- See Also:
IReferenceUpdater,IChangeSerializer.setUpdateRelatedFiles(boolean)
-
setUpdateRelatedFiles
public void setUpdateRelatedFiles(boolean value)
Description copied from interface:IChangeSerializerIf set to true, (that's the default) andIChangeSerializer.isUpdateCrossReferences()is also set to true,IReferenceUpdaterwill also be called for files that are not directly changed by anIChangeSerializer.IModificationbut may contain cross references pointing to a changed files.- Specified by:
setUpdateRelatedFilesin interfaceIChangeSerializer
-
setProgressMonitor
public void setProgressMonitor(org.eclipse.core.runtime.IProgressMonitor monitor)
Description copied from interface:IChangeSerializerIf set,IChangeSerializer.addModification(Notifier, IModification)will report progress and check {#IProgressMonitor.isCanceled()on this monitor object.- Specified by:
setProgressMonitorin interfaceIChangeSerializer
-
-