Class DeltaBuilder
- java.lang.Object
 - 
- jetbrains.mps.generator.impl.template.DeltaBuilder
 
 
- 
public abstract class DeltaBuilder extends Object
Collect changes during template processing 
- 
- 
Constructor Summary
Constructors Modifier Constructor Description protectedDeltaBuilder(List<jetbrains.mps.generator.impl.template.DeltaBuilder.CopyRoot> rootsStorage) 
- 
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidapplyInplace(SModel inputModel)protected abstract voidclearCurrentFragments()voiddeleteInputRoot(SNode node)voiddump()voidenterInputRoot(SNode node)voidenterNestedCopySrc(SNode node)SNodefindOutputNodeById(SNodeId nodeId)protected abstract List<jetbrains.mps.generator.impl.template.DeltaBuilder.SubTree>getCurrentFragments()protected abstract jetbrains.mps.generator.impl.template.DeltaBuilder.CopyRootgetCurrentRoot()protected abstract Deque<SNode>getNestedCopyRoots()booleanhasChanges()protected abstract voidinitCurrentFragments()voidleaveInputRoot(SNode node)voidleaveNestedCopySrc(SNode node)static DeltaBuildernewConcurrentDeltaBuilder()static DeltaBuildernewSingleThreadDeltaBuilder()voidprepareReferences(SModel inputModel, TemplateGenerator generator)voidregisterRoot(SNode oldRoot, SNode newRoot)voidregisterSubTree(SNode replacedNode, SContainmentLink roleInParent, Collection<SNode> subTree)voidreplacePlaceholderNode(SNode placeholder, SNode actual)Delayed/postponed changes may replace nodes created earlier, and we shall update delta accordingly.protected abstract voidsetCurrentRoot(jetbrains.mps.generator.impl.template.DeltaBuilder.CopyRoot currentRoot) 
 - 
 
- 
- 
Constructor Detail
- 
DeltaBuilder
protected DeltaBuilder(List<jetbrains.mps.generator.impl.template.DeltaBuilder.CopyRoot> rootsStorage)
 
 - 
 
- 
Method Detail
- 
newSingleThreadDeltaBuilder
public static DeltaBuilder newSingleThreadDeltaBuilder()
 
- 
newConcurrentDeltaBuilder
public static DeltaBuilder newConcurrentDeltaBuilder()
 
- 
registerSubTree
public void registerSubTree(@NotNull SNode replacedNode, @NotNull SContainmentLink roleInParent, @NotNull Collection<SNode> subTree)
- Parameters:
 replacedNode- node in the input model to be replaced with nodes fromsubTreeroleInParent- node's containmentsubTree- new nodes to put into model, can be empty to indicate node removal.
 
- 
replacePlaceholderNode
public void replacePlaceholderNode(@NotNull SNode placeholder, @NotNull SNode actual)
Delayed/postponed changes may replace nodes created earlier, and we shall update delta accordingly. 
- 
hasChanges
public boolean hasChanges()
 
- 
prepareReferences
public void prepareReferences(SModel inputModel, TemplateGenerator generator)
 
- 
applyInplace
public void applyInplace(SModel inputModel)
 
- 
dump
public void dump()
 
- 
getCurrentRoot
protected abstract jetbrains.mps.generator.impl.template.DeltaBuilder.CopyRoot getCurrentRoot()
 
- 
setCurrentRoot
protected abstract void setCurrentRoot(jetbrains.mps.generator.impl.template.DeltaBuilder.CopyRoot currentRoot)
 
- 
getCurrentFragments
protected abstract List<jetbrains.mps.generator.impl.template.DeltaBuilder.SubTree> getCurrentFragments()
 
- 
initCurrentFragments
protected abstract void initCurrentFragments()
 
- 
clearCurrentFragments
protected abstract void clearCurrentFragments()
 
 - 
 
 -