All Downloads are FREE. Search and download functionalities are using the official Maven repository.

pi-generator.0.0.13.source-code.TaskBuilder.mustache Maven / Gradle / Ivy

Go to download

Internal module containing an annotation processor for generating the TaskBuilder API

The newest version!
package {{packageName}};

import java.io.Serializable;
import java.util.List;
import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.function.Supplier;

import javax.annotation.Generated;

import io.rouz.flo.TaskContext.Value;

/**
 * Types for the fluent task setup API
 *
 * The entry point for this api is {@link Task#named(String, Object...)}}.
 *
 * Note, the inner types should never have to explicitly be mentioned or imported. The API is
 * supposed to be used through fluent calls that eventually lead to a {@link Task} instance.
 */
@Generated("io.rouz.flo.gen.ApiGeneratorProcessor")
public interface {{interfaceName}} {

  Task process(F0 code);
  Task processWithContext(F1> code);

   {{interfaceName}}1 op(OpProvider opProvider);

   {{interfaceName}}1 in(Fn> task);
   {{interfaceName}}1, Z> ins(Fn>> tasks);
{{#genBuilder}}

  interface {{interfaceName}}{{arity}}<{{typeArgs}}, Z> {
    Task process(F{{arity}}<{{typeArgs}}, Z> code);
    Task processWithContext(F{{arityPlus}}> code);
  {{^iter.isLast}}

    <{{nextArg}}> {{interfaceName}}{{arityPlus}}<{{typeArgs}}, {{nextArg}}, Z> op(OpProvider<{{nextArg}}> opProvider);

    <{{nextArg}}> {{interfaceName}}{{arityPlus}}<{{typeArgs}}, {{nextArg}}, Z> in(Fn> task);
    <{{nextArg}}> {{interfaceName}}{{arityPlus}}<{{typeArgs}}, List<{{nextArg}}>, Z> ins(Fn>> tasks);
  {{/iter.isLast}}
  }
{{/genBuilder}}
{{#genFn}}

  {{#iter.isFirst}}
  @FunctionalInterface
  interface F{{arity}} extends {{{jdkInterface}}}Serializable {
    Z get();
  }
  {{/iter.isFirst}}
  {{^iter.isFirst}}
  @FunctionalInterface
  interface F{{arity}}<{{typeArgs}}, Z> extends {{{jdkInterface}}}Serializable {
    Z apply({{parameters}});
  }
  {{/iter.isFirst}}
{{/genFn}}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy