Module aeonics.core

Class Step.Destination

  • Direct Known Subclasses:
    Console, HttpResponse
    Enclosing class:
    Step

    public abstract static class Step.Destination
    extends Step
    This class represents the Destination of data. It is the termination point of a data flow.

    There are two recommended ways to create your own item inline (without creating a full class). The first method allows to provide the data processing function and registers automatically the template in the factory and the instance in the registry:

     Destination.Type item = new Destination() { } // <-- note the '{ }' to create a new anonymous class
         
         .template() // <-- create the template and register it in the factory
         
         // add all your template documentation
         .summary("Does something")
         
         .create() // <-- create an instance of the entity and register it in the registry
         
         // set the processing function
         .processor((message, input) -> {}); // <-- the process logic
     

    If you need more control over the behavior such as private member variables or multiple methods, then you need to declare a custom entity end register it before calling the template method:

     public static class MyEntity extends Destination.Type {
         private void log(Message message) { System.out.println(message); }
         public Message process(Message message, String input) { log(message); return null; }
     }
     
     Destination.Type item = new Destination() { } // <-- note the '{ }' to create a new anonymous class
         
         // register the custom entity before calling the template
         .target(MyEntity.class)
         .creator(MyEntity::new)
         
         .template() // <-- create the template and register it in the factory
         
         // add all your template documentation
         .summary("Does something")
         
         .create(); // <-- create an instance of the entity and register it in the registry
     

    Note that the output argument will always be null and the method should always return null.

    • Constructor Detail

      • Destination

        public Destination()
    • Method Detail

      • defaultTarget

        protected java.lang.Class<? extends Step.Destination.Type> defaultTarget()
        Description copied from class: Item
        Returns the default target entity type. This method should be implemented by subclasses to specify the target entity type.
        Specified by:
        defaultTarget in class Item<Step.Type>
        Returns:
        the default target entity type
      • defaultCreator

        protected java.util.function.Supplier<? extends Step.Destination.Type> defaultCreator()
        Description copied from class: Item
        Returns the default target entity creator. This method should be implemented by subclasses to specify the entity creator.
        Specified by:
        defaultCreator in class Item<Step.Type>
        Returns:
        the default target entity creator
      • template

        public Step.Template template()
        Description copied from class: Item
        Returns the template to build the target entity.

        This method should ultimately be used to provide the final entity template. Although, it may also provide a partial template that subclassed may complement.

        Overrides:
        template in class Step
        Returns:
        the matching entity template