Interface PipelineRegistrar

  • All Known Implementing Classes:
    PipelineRegistrarImpl

    public interface PipelineRegistrar

    Allows a Transformer Module to register methods for availability in pipelines.

    Notes:
    • The API currently does not support methods with return types other than void
    • When overloaded methods are registered with pipelines, the following rules are applied when calling from a pipeline back into Java:
      • check whether the number of arguments matches any available signature
      • check whether the arguments passed to the pipeline function can be converted to the types on the signature
      • If more than one valid signature is found, then no calls into Java are made
    Examples:
    
     public class MyPipelineCallbacks {
         public void myMethod(int a) {
             System.out.println("called from pipeline with < " + a + ">");
         }
    
         public void myMethod(int a, int b) {
             System.out.println("called from pipeline with < " + a + "> <" + b + ">");
         }
     }
    
     //initialise method of Transformer module
     public void initialise(java.lang.String moduleName, TransformerAccessor transformerAccessor) {
          MyPipelineCallbacks callbackObject = new MyPipelineCallbacks();
    
          transformerAccessor.getPipelineRegistrar().registerPipelineMethod(callbackObject, "myMethod");
     }
     
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void registerPipelineMethod​(java.lang.Object object, java.lang.String methodName)
      Registers a function with the name pipelineFunctionName with the Pipeline module so that pipelines can call into Java Transformer modules.
      void registerPipelineMethod​(java.lang.Object object, java.lang.String pipelineFunctionName, java.lang.String methodName)
      Registers a function with the name pipelineFunctionName with the Pipeline module so that pipelines can call into Java Transformer modules.
    • Method Detail

      • registerPipelineMethod

        void registerPipelineMethod​(java.lang.Object object,
                                    java.lang.String methodName)
                             throws java.lang.NoSuchMethodException
        Registers a function with the name pipelineFunctionName with the Pipeline module so that pipelines can call into Java Transformer modules. The registrar looks up all methods with methodName on the class of object and checks their signatures against valid types defined in PipelineType. All methods passing this validity check will get registered with pipelines. In case of methods being overloaded, the correct one to call will be determined at runtime, with a few limitations - see Notes.
        Parameters:
        object - object where the method will get called on
        methodName - method to be called on the provided object
        Throws:
        java.lang.NoSuchMethodException - if no method with the given name can be found
      • registerPipelineMethod

        void registerPipelineMethod​(java.lang.Object object,
                                    java.lang.String pipelineFunctionName,
                                    java.lang.String methodName)
                             throws java.lang.NoSuchMethodException
        Registers a function with the name pipelineFunctionName with the Pipeline module so that pipelines can call into Java Transformer modules. The registrar looks up all methods with methodName on the class of object and checks their signatures against valid types defined in PipelineType. All methods passing this validity check will get registered with pipelines. In case of methods being overloaded, the correct one to call will be determined at runtime, with a few limitations - see Notes.
        Parameters:
        object - object where the method will get called on
        pipelineFunctionName - function name registered with pipelines
        methodName - method to be called on the provided object
        Throws:
        java.lang.NoSuchMethodException - if no method with the given name can be found