Class BuilderVisitingPhaseAction

java.lang.Object
com.blackbuild.klum.ast.runtime.internal.process.AbstractPhaseAction
com.blackbuild.klum.ast.runtime.BuilderVisitingPhaseAction
All Implemented Interfaces:
ModelVisitor, PhaseAction
Direct Known Subclasses:
AutoCreationPhase, AutoLinkPhase, DefaultPhase, EarlyValidationPhase, OwnerPhase, PostTreePhase

public abstract class BuilderVisitingPhaseAction extends AbstractPhaseAction implements ModelVisitor
Visits mutable Builders before DefaultKlumPhase.INSTANTIATE.
  • Constructor Details

    • BuilderVisitingPhaseAction

      protected BuilderVisitingPhaseAction(KlumPhase phase)
  • Method Details

    • doExecute

      protected void doExecute()
      Specified by:
      doExecute in class AbstractPhaseAction
    • shouldVisit

      public ModelVisitor.Action shouldVisit(@NotNull @NotNull String path, @NotNull @NotNull Object element, @Nullable @Nullable Object container, @Nullable @Nullable String nameOfFieldInContainer)
      Description copied from interface: ModelVisitor
      Checks whether the given element should be visited. The defautlt implementation is to only handle DSL objects.
      Specified by:
      shouldVisit in interface ModelVisitor
      Parameters:
      path - a string (GSON-like) representation of the path from the root to this element
      element - the element to visit
      container - The object containing this element. If the element is a member of a collection or map, the object containing the collection or map.
      nameOfFieldInContainer - The name of the field in the container pointing to this object (or its collection/map
      Returns:
      whether to skip, visit or skip subtree
    • visit

      public final void visit(@NotNull @NotNull String path, @NotNull @NotNull Object element, @Nullable @Nullable Object container, @Nullable @Nullable String nameOfFieldInContainer)
      Description copied from interface: ModelVisitor
      Visit the given element.
      Specified by:
      visit in interface ModelVisitor
      Parameters:
      path - a string (GSON-like) representation of the path from the root to this element
      element - the element to visit
      container - The object containing this element. If the element is a member of a collection or map, the object containing the collection or map.
      nameOfFieldInContainer - The name of the field in the container pointing to this object (or its collection/map
    • doVisit

      protected abstract void doVisit(@NotNull @NotNull String path, @NotNull @NotNull InternalKlumBuilder<?> builder, @Nullable @Nullable Object container, @Nullable @Nullable String nameOfFieldInContainer)
    • withCurrentTemplates

      protected void withCurrentTemplates(InternalKlumBuilder<?> builder, Runnable runnable)