Class ServiceQueryProvider<T extends RootEntity,​R>

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

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

    Constructors
    Constructor Description
    ServiceQueryProvider​(java.lang.Class<T> rootType, EventRepositoy<T> eventRepository, java.util.function.Function<java.lang.Class<? extends RootEntity>,​QueryOperations<?>> queryOperationSelector, java.util.function.Supplier<java.util.function.BiFunction<java.lang.String,​java.lang.Object,​reactor.core.publisher.Mono>> requestHandler, java.util.function.Supplier<java.util.function.Consumer> injector)  
  • Method Summary

    Modifier and Type Method Description
    org.reactivestreams.Publisher apply​(java.lang.Object input)  
    protected static java.lang.Object encode​(IQuery query, java.lang.Object reply)  
    java.util.Optional<EntityQueryHandler> getQueryHandler​(java.lang.String name)  
    void registerDefaultQueryHandlersForEntity​(java.lang.Class<? extends Entity> entityType)  
    void registerQueryHandler​(java.lang.Class<? extends EntityQueryHandler> handlerType)  
    void validate​(java.util.function.Predicate<java.lang.String> pred, java.lang.String name, java.lang.String error)  
    static void validateHandler​(java.lang.String name, java.lang.Class<? extends RootEntity> rootType, java.lang.Class<? extends Entity> type)  

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface java.util.function.Function

    andThen, compose
  • Constructor Details

    • ServiceQueryProvider

      public ServiceQueryProvider​(java.lang.Class<T> rootType, EventRepositoy<T> eventRepository, java.util.function.Function<java.lang.Class<? extends RootEntity>,​QueryOperations<?>> queryOperationSelector, java.util.function.Supplier<java.util.function.BiFunction<java.lang.String,​java.lang.Object,​reactor.core.publisher.Mono>> requestHandler, java.util.function.Supplier<java.util.function.Consumer> injector)
  • Method Details

    • registerQueryHandler

      public void registerQueryHandler​(java.lang.Class<? extends EntityQueryHandler> handlerType)
    • registerDefaultQueryHandlersForEntity

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

      public java.util.Optional<EntityQueryHandler> getQueryHandler​(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>
    • encode

      protected static java.lang.Object encode​(IQuery query, java.lang.Object reply)
    • validate

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