Class AbstractPluginAspect<EXTENSIONPOINT>

java.lang.Object
org.ehrbase.plugin.AbstractPluginAspect<EXTENSIONPOINT>
Direct Known Subclasses:
CompositionPluginAspect, EhrPluginAspect, QueryPluginAspect, TemplatePluginAspect

@Deprecated(forRemoval=true) public abstract class AbstractPluginAspect<EXTENSIONPOINT> extends Object
Deprecated, for removal: This API element is subject to removal in a future version.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final org.springframework.beans.factory.ListableBeanFactory
    Deprecated, for removal: This API element is subject to removal in a future version.
     
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    AbstractPluginAspect(org.springframework.beans.factory.ListableBeanFactory beanFactory, Class<EXTENSIONPOINT> clazz)
    Deprecated, for removal: This API element is subject to removal in a future version.
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected List<EXTENSIONPOINT>
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    void
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    protected Object
    proceed(org.aspectj.lang.ProceedingJoinPoint pjp, Object[] args)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Proceed with Error handling.
    protected <IN, OUT> OUT
    proceedWithPluginExtensionPoints(org.aspectj.lang.ProceedingJoinPoint pjp, org.apache.commons.lang3.function.TriFunction<EXTENSIONPOINT,IN,Function<IN,OUT>,OUT> extensionPointMethod, Function<Object[],IN> argsToInputObj, BiFunction<IN,Object[],Object[]> setArgs)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Proceeds with the invocation by calling the given method on all extension points in ascending order and then the service method (analog to Spring AOP aspects behaviour).
    protected <IN, OUT> OUT
    proceedWithPluginExtensionPoints(org.aspectj.lang.ProceedingJoinPoint pjp, org.apache.commons.lang3.function.TriFunction<EXTENSIONPOINT,IN,Function<IN,OUT>,OUT> extensionPointMethod, Function<Object[],IN> argsToInputObj, BiFunction<IN,Object[],Object[]> setArgs, Function<Object,OUT> afterProceed)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Proceeds with the invocation by calling the given method on all extension points in ascending order and then the service method (analog to Spring AOP aspects behaviour).

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • beanFactory

      protected final org.springframework.beans.factory.ListableBeanFactory beanFactory
      Deprecated, for removal: This API element is subject to removal in a future version.
  • Constructor Details

    • AbstractPluginAspect

      protected AbstractPluginAspect(org.springframework.beans.factory.ListableBeanFactory beanFactory, Class<EXTENSIONPOINT> clazz)
      Deprecated, for removal: This API element is subject to removal in a future version.
  • Method Details

    • inServiceLayerPC

      public void inServiceLayerPC()
      Deprecated, for removal: This API element is subject to removal in a future version.
    • proceed

      protected Object proceed(org.aspectj.lang.ProceedingJoinPoint pjp, Object[] args)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Proceed with Error handling.
      Parameters:
      pjp -
      args -
      Returns:
    • getActiveExtensionPointsOrderedDesc

      protected List<EXTENSIONPOINT> getActiveExtensionPointsOrderedDesc()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Returns:
      Order List of CompositionExtensionPoint in Context.
    • proceedWithPluginExtensionPoints

      protected <IN, OUT> OUT proceedWithPluginExtensionPoints(org.aspectj.lang.ProceedingJoinPoint pjp, org.apache.commons.lang3.function.TriFunction<EXTENSIONPOINT,IN,Function<IN,OUT>,OUT> extensionPointMethod, Function<Object[],IN> argsToInputObj, BiFunction<IN,Object[],Object[]> setArgs)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Proceeds with the invocation by calling the given method on all extension points in ascending order and then the service method (analog to Spring AOP aspects behaviour).
      Type Parameters:
      IN - POJO Type used by extensionPointMethod for argument aggregation
      OUT - return type of extensionPointMethod and the service method invocation represented by pjp
      Parameters:
      pjp -
      extensionPointMethod - Method that is part of Type EXTENSIONPOINT to call
      argsToInputObj - Function to convert from an Object array to the input type IN used by extensionPointMethod
      setArgs - Function to set/modify the Object array used for ProceedingJoinPoint::proceed using an object of type IN
      Returns:
      result of passing the method call through all extension points to the service layer and processing the return value back through all extension points
    • proceedWithPluginExtensionPoints

      protected <IN, OUT> OUT proceedWithPluginExtensionPoints(org.aspectj.lang.ProceedingJoinPoint pjp, org.apache.commons.lang3.function.TriFunction<EXTENSIONPOINT,IN,Function<IN,OUT>,OUT> extensionPointMethod, Function<Object[],IN> argsToInputObj, BiFunction<IN,Object[],Object[]> setArgs, Function<Object,OUT> afterProceed)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Proceeds with the invocation by calling the given method on all extension points in ascending order and then the service method (analog to Spring AOP aspects behaviour).
      Type Parameters:
      IN - POJO Type used by extensionPointMethod for argument aggregation
      OUT - return type of extensionPointMethod and in most cases the service method invocation represented by pjp
      Parameters:
      pjp -
      extensionPointMethod - Method that is part of Type EXTENSIONPOINT to call
      argsToInputObj - Function to convert from an Object array to the input type IN used by extensionPointMethod
      setArgs - Function to set/modify the Object array used for ProceedingJoinPoint::proceed using an object of type IN
      afterProceed - function to apply to adapt the return value of the service call to the return type of the extension point method (OUT)
      Returns:
      result of passing the method call through all extension points to the service layer and processing the return value back through all extension points