Class DeltaBuilder


  • public abstract class DeltaBuilder
    extends Object
    Collect changes during template processing
    • 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()
      • enterInputRoot

        public void enterInputRoot​(@NotNull
                                   SNode node)
      • deleteInputRoot

        public void deleteInputRoot​(@NotNull
                                    SNode node)
      • leaveInputRoot

        public void leaveInputRoot​(@NotNull
                                   SNode node)
      • enterNestedCopySrc

        public void enterNestedCopySrc​(@NotNull
                                       SNode node)
      • leaveNestedCopySrc

        public void leaveNestedCopySrc​(@NotNull
                                       SNode node)
      • 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 from subTree
        roleInParent - node's containment
        subTree - 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()
      • applyInplace

        public void applyInplace​(SModel inputModel)
      • dump

        public void dump()
      • getNestedCopyRoots

        protected abstract Deque<SNode> getNestedCopyRoots()
      • 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()