Interface DiscriminatorEventService

  • All Known Implementing Classes:
    ConcreteDiscriminatorEventService

    public interface DiscriminatorEventService
    A service that supports creating and finding discriminator events.
    Author:
    Carl Harris
    • Method Detail

      • isDiscriminatorNeeded

        boolean isDiscriminatorNeeded​(ContainerNode node)
        Tests whether a node requires a discriminator.
        Parameters:
        node - the subject node
        Returns:
        true if node requires a discriminator
      • newDiscriminatorEvent

        View.Event newDiscriminatorEvent​(ViewNode node,
                                         Class<?> subtype,
                                         ScopedViewContext context)
        Creates a new discriminator event for the given node and subtype.
        Parameters:
        node - the subject node
        subtype - subtype represented by the node
        context - view context
        Returns:
        discriminator event
      • findDiscriminatorEvent

        View.Event findDiscriminatorEvent​(View.Event triggerEvent,
                                          Iterator<View.Event> events)
        Finds the first discriminator event in the given event stream, skipping any structures encountered while searching.
        Parameters:
        triggerEvent -
        events - stream of events to search
        Returns:
        discriminator or null if not found
      • findStrategy

        DiscriminatorStrategy findStrategy​(ViewNode node,
                                           ScopedViewContext context)
        Finds the appropriate discriminator strategy for the subject container node.
        Parameters:
        node - subject node
        context - view context
        Returns:
        discriminator strategy (never null)