Class BaseRepositoryInterfaceGenerator

java.lang.Object
io.helidon.data.codegen.common.BaseGenerator
io.helidon.data.codegen.common.BaseRepositoryInterfaceGenerator
All Implemented Interfaces:
RepositoryInterfaceGenerator
Direct Known Subclasses:
BaseRepositoryMethodsGenerator

public abstract class BaseRepositoryInterfaceGenerator extends BaseGenerator implements RepositoryInterfaceGenerator
Data repository interface code generator base class.
  • Constructor Details

    • BaseRepositoryInterfaceGenerator

      protected BaseRepositoryInterfaceGenerator(RepositoryInfo repositoryInfo, ClassModel.Builder classModel, CodegenContext codegenContext, PersistenceGenerator persistenceGenerator)
      Creates an instance of data repository interface code generator base class.
      Parameters:
      repositoryInfo - data repository interface info
      classModel - target class builder
      codegenContext - code processing and generation context
      persistenceGenerator - persistence provider specific generator
  • Method Details

    • optionalOfNullable

      protected static void optionalOfNullable(Method.Builder builder, Consumer<Method.Builder> content)
      Parameters:
      builder - method builder
      content - additional statement content
    • optionalFromQuery

      @Deprecated protected static void optionalFromQuery(Method.Builder builder, Consumer<Method.Builder> content, TypeName executorType)
      Deprecated.
      will be removed with Jakarta Persistence 3.2
      Generate <T> Optional<T> RepositoryExecutor#optionalFromQuery(List<T>) call. This is Jakarta Persistence 3.1 workaround.
      Parameters:
      builder - method builder
      content - additional statement content
      executorType - repository executor type
    • call

      protected static void call(Method.Builder builder, Consumer<Method.Builder> content, String identifier)
      Generate Callable call.
      Parameters:
      builder - method builder
      content - additional statement content
      identifier - Callable instance identifier
    • run

      protected static void run(Method.Builder builder, Consumer<Method.Builder> content, String identifier)
      Generate Runnable run.
      Parameters:
      builder - method builder
      content - additional statement content
      identifier - Callable instance identifier
    • extendsType

      protected static TypeArgument extendsType(String type, TypeName extended)
      Generate <type> extends <extended> generic type.
      Parameters:
      type - extending type
      extended - type being extended
      Returns:
      extends generic type
    • repositoryInfo

      protected RepositoryInfo repositoryInfo()
      Data repository interface info.
      Returns:
      data repository interface descriptor
    • classModel

      protected ClassModel.Builder classModel()
      Target implementing class model builder.
      Returns:
      class model builder
    • codegenContext

      protected CodegenContext codegenContext()
      Code processing and generation context.
      Returns:
      codegen context
    • persistenceGenerator

      protected PersistenceGenerator persistenceGenerator()
      Specific persistence provider generator. Repository interface implementing class is defined by PersistenceGenerator but it content (e.g. implemented data repository interfaces) are defined by RepositoryGenerator which holds individual instances of RepositoryInterfaceGenerator classes. PersistenceGenerator provides persistence provider specific code for data repository interface implementing code.
      Returns:
      persistence provider generator
    • queryBuilder

      protected PersistenceGenerator.QueryBuilder queryBuilder()
      Query code builder from persistence provider generator.
      Returns:
      query code builder
    • statementGenerator

      protected PersistenceGenerator.StatementGenerator statementGenerator()
      Persistence provider specific code snippets generator.
      Returns:
      code snippets generator
    • methodWarning

      protected void methodWarning(TypedElementInfo methodInfo, String message)
      Log method generation warning.
      Parameters:
      methodInfo - method info
      message - warning message