Class ServiceProvider<T extends RootEntity,​R>

java.lang.Object
com.cloudimpl.outstack.runtime.ServiceProvider<T,​R>
Type Parameters:
T -
All Implemented Interfaces:
java.util.function.Function<java.lang.Object,​org.reactivestreams.Publisher<?>>

public class ServiceProvider<T extends RootEntity,​R>
extends java.lang.Object
implements java.util.function.Function<java.lang.Object,​org.reactivestreams.Publisher<?>>
Author:
nuwan
  • Constructor Details

    • ServiceProvider

      public ServiceProvider​(java.lang.Class<T> rootType, EventRepositoy<T> eventRepository, java.util.function.Function<java.lang.Class<? extends RootEntity>,​QueryOperations<?>> queryOperationSelector)
  • Method Details

    • registerCommandHandler

      public void registerCommandHandler​(java.lang.Class<? extends EntityCommandHandler> handlerType)
    • registerDefaultCmdHandlersForEntity

      public void registerDefaultCmdHandlersForEntity​(java.lang.Class<? extends Entity> entityType)
    • registerEventHandler

      public void registerEventHandler​(java.lang.Class<? extends EntityEventHandler> handlerType)
    • getCmdHandler

      public java.util.Optional<EntityCommandHandler> getCmdHandler​(java.lang.String name)
    • validateHandler

      public static void validateHandler​(java.lang.String name, java.lang.Class<? extends RootEntity> rootType, java.lang.Class<? extends Entity> type)
    • apply

      public org.reactivestreams.Publisher apply​(java.lang.Object input)
      Specified by:
      apply in interface java.util.function.Function<T extends RootEntity,​R>
    • applyEvent

      public void applyEvent​(Event event)
    • validate

      public void validate​(java.util.function.Predicate<java.lang.String> pred, java.lang.String name, java.lang.String error)