Class POJOWorkflowInterfaceMetadata


  • public final class POJOWorkflowInterfaceMetadata
    extends java.lang.Object
    Metadata of a workflow interface.

    Rules:

    • A workflow implementation must implement at least one non empty interface annotated with WorkflowInterface
    • An interface annotated with WorkflowInterface can extend zero or more interfaces.
    • An interface annotated with WorkflowInterface defines workflow methods for all methods it inherited from interfaces which are not annotated with WorkflowInterface.
    • Each method name can be defined only once across all interfaces annotated with WorkflowInterface. So if annotated interface A has method foo() and an annotated interface B extends A it cannot also declare foo() even with a different signature.
    • Method Detail

      • newInstanceSkipWorkflowAnnotationCheck

        public static POJOWorkflowInterfaceMetadata newInstanceSkipWorkflowAnnotationCheck​(java.lang.Class<?> anInterface)
        Returns POJOWorkflowInterfaceMetadata for an interface that may be annotated with WorkflowInterface. This to support invoking workflow signal and query methods through a base interface without such annotation.
      • getInterfaceClass

        public java.lang.Class<?> getInterfaceClass()
        Java interface Class that backs this workflow interface.
      • getWorkflowType

        public java.util.Optional<java.lang.String> getWorkflowType()
        Workflow type the workflow interface defines. It is empty for interfaces that contain only signal and query methods.
      • getMethodMetadata

        public POJOWorkflowMethodMetadata getMethodMetadata​(java.lang.reflect.Method method)
        Return metadata for a method of a workflow interface.
        Throws:
        java.lang.IllegalArgumentException - if method doesn't belong to the workflow interface.