Interface KotlinCodeGenerationStrategy

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
    • Field Summary

      Fields 
      Modifier and Type Field Description
    • Constructor Summary

      Constructors 
      Constructor Description
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • Method Summary

      Modifier and Type Method Description
      abstract SPEC invoke(CONTEXT context, INPUT input) Implements the actual strategy logic to generate a spec from a given input, using context information.
      Boolean test(CONTEXT context, Object input) If true, the spi instance is executed, else ignored.
      SPEC execute(CONTEXT context, INPUT input) Checks if this strategy should be applied (using test) and then runs invoke.
      abstract KClass<CONTEXT> getContextType() The type of the generic CONTEXT, used to filter relevant instances.
      abstract KClass<INPUT> getInputType() The type of the generic INPUT, used to filter relevant instances.
      abstract String getName() The name that is used when the implementing class is listed in a META-INF/services/ file.
      abstract Integer getOrder() Order is used to sort spi instances.
      abstract KClass<SPEC> getSpecType() The type of the created SPEC, used to filter relevant instances for execution.
      • Methods inherited from class io.toolisticon.kotlin.generation.spi.KotlinCodeGenerationSpi

        compareTo
      • Methods inherited from class java.util.function.BiPredicate

        and, negate, or
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

    • Method Detail

      • invoke

         abstract SPEC invoke(CONTEXT context, INPUT input)

        Implements the actual strategy logic to generate a spec from a given input, using context information.

        Parameters:
        context - the context we are operating in
        input - the concrete work item
        Returns:

        the generated spec

      • test

         Boolean test(CONTEXT context, Object input)

        If true, the spi instance is executed, else ignored.

        Parameters:
        context - the context we are operating in
        input - the concrete work item, for the check this is unbound and nullable, so we can check against calling with unsupported types.
        Returns:

        true when the spi shoud be applied.

      • execute

         SPEC execute(CONTEXT context, INPUT input)

        Checks if this strategy should be applied (using test) and then runs invoke.

        Parameters:
        context - the context we are operating in
        input - the concrete work item
        Returns:

        generated spec (or null if test was false).

      • getInputType

         abstract KClass<INPUT> getInputType()

        The type of the generic INPUT, used to filter relevant instances.

      • getName

         abstract String getName()

        The name that is used when the implementing class is listed in a META-INF/services/ file. Attention: SPI uses java naming, so inner classes have to be separated by $.

      • getOrder

         abstract Integer getOrder()

        Order is used to sort spi instances.

      • getSpecType

         abstract KClass<SPEC> getSpecType()

        The type of the created SPEC, used to filter relevant instances for execution.