Class ConcreteDiscriminatorEventService
- java.lang.Object
-
- org.soulwing.prospecto.runtime.discriminator.ConcreteDiscriminatorEventService
-
- All Implemented Interfaces:
DiscriminatorEventService
public class ConcreteDiscriminatorEventService extends Object implements DiscriminatorEventService
ADiscriminatorEventService
implementation.- Author:
- Carl Harris
-
-
Field Summary
Fields Modifier and Type Field Description static ConcreteDiscriminatorEventService
INSTANCE
-
Fields inherited from interface org.soulwing.prospecto.runtime.discriminator.DiscriminatorEventService
DISCRIMINATOR_FLAG_KEY
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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.DiscriminatorStrategy
findStrategy(ViewNode node, ScopedViewContext context)
Finds the appropriate discriminator strategy for the subject container node.boolean
isDiscriminatorNeeded(ContainerNode node)
Tests whether a node requires a discriminator.View.Event
newDiscriminatorEvent(ViewNode node, Class<?> subtype, ScopedViewContext context)
Creates a new discriminator event for the given node and subtype.
-
-
-
Field Detail
-
INSTANCE
public static final ConcreteDiscriminatorEventService INSTANCE
-
-
Method Detail
-
isDiscriminatorNeeded
public boolean isDiscriminatorNeeded(ContainerNode node)
Description copied from interface:DiscriminatorEventService
Tests whether a node requires a discriminator.- Specified by:
isDiscriminatorNeeded
in interfaceDiscriminatorEventService
- Parameters:
node
- the subject node- Returns:
true
ifnode
requires a discriminator
-
newDiscriminatorEvent
public View.Event newDiscriminatorEvent(ViewNode node, Class<?> subtype, ScopedViewContext context)
Description copied from interface:DiscriminatorEventService
Creates a new discriminator event for the given node and subtype.- Specified by:
newDiscriminatorEvent
in interfaceDiscriminatorEventService
- Parameters:
node
- the subject nodesubtype
- subtype represented by the nodecontext
- view context- Returns:
- discriminator event
-
findDiscriminatorEvent
public View.Event findDiscriminatorEvent(View.Event triggerEvent, Iterator<View.Event> events)
Description copied from interface:DiscriminatorEventService
Finds the first discriminator event in the given event stream, skipping any structures encountered while searching.- Specified by:
findDiscriminatorEvent
in interfaceDiscriminatorEventService
events
- stream of events to search- Returns:
- discriminator or
null
if not found
-
findStrategy
public DiscriminatorStrategy findStrategy(ViewNode node, ScopedViewContext context)
Description copied from interface:DiscriminatorEventService
Finds the appropriate discriminator strategy for the subject container node.- Specified by:
findStrategy
in interfaceDiscriminatorEventService
- Parameters:
node
- subject nodecontext
- view context- Returns:
- discriminator strategy (never
null
)
-
-