Class BasePersistenceGenerator

java.lang.Object
io.helidon.data.codegen.common.BaseGenerator
io.helidon.data.codegen.common.BasePersistenceGenerator
All Implemented Interfaces:
PersistenceGenerator

public abstract class BasePersistenceGenerator extends BaseGenerator implements PersistenceGenerator
Specific persistence provider (e.g. Jakarta Persistence, EclipseLink native, ...) generator base class.
  • Constructor Details

    • BasePersistenceGenerator

      protected BasePersistenceGenerator()
      Creates an instance of specific persistence provider generator base class.
  • Method Details

    • generate

      public void generate(CodegenContext codegenContext, RoundContext roundContext, TypeInfo interfaceInfo, RepositoryGenerator repositoryGenerator)
      Description copied from interface: PersistenceGenerator
      Generate persistence provider specific code. There is always just one data repository provider bound to single data repository interface and its implementing class.
      Specified by:
      generate in interface PersistenceGenerator
      Parameters:
      codegenContext - code processing and generation context
      roundContext - codegen round context
      interfaceInfo - data repository interface info
      repositoryGenerator - specific data repository code generator
    • provider

      protected abstract String provider()
      Name of the provider.
      Returns:
      provider name
    • repositoryClassName

      protected abstract TypeName repositoryClassName(TypeName baseName)
      Data repository interface implementing class name for specific persistence provider.
      Parameters:
      baseName - repository interface name (target name base)
      Returns:
      @return implementing class name
    • generateRepositoryClass

      protected abstract void generateRepositoryClass(CodegenContext codegenContext, RoundContext roundContext, RepositoryGenerator repositoryGenerator, RepositoryInfo repositoryInfo, TypeName className, ClassModel.Builder classModel)
      Generate data repository interface implementing class for specific persistence provider.
      Parameters:
      codegenContext - code processing and generation context.
      roundContext - code processing and generation round contexts
      repositoryGenerator - specific data repository code generator
      repositoryInfo - data repository interface info
      className - implementing class name (from {#link repositoryClassName(TypeName)})
      classModel - target implementing class model builder