Package io.helidon.data.codegen.common
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.
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.helidon.data.codegen.common.spi.PersistenceGenerator
PersistenceGenerator.BaseQuery, PersistenceGenerator.DynamicQueryParts, PersistenceGenerator.Query, PersistenceGenerator.QueryBuilder, PersistenceGenerator.QueryReturnType, PersistenceGenerator.QuerySettings, PersistenceGenerator.StatementGenerator
-
Field Summary
Fields inherited from class io.helidon.data.codegen.common.BaseGenerator
BIG_DECIMAL, BIG_INTEGER, CLASS_WILDCARD, ENTITIES, ENTITY, EXECUTOR, GENERIC_T, GENERIC_WILDCARD, ID, ITERABLE_T, ITERABLE_T_ENTITIES, LIST_T, LIST_T_ENTITIES, NUMBER, OBJECT, T, T_ENTITY
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
Creates an instance of specific persistence provider generator base class. -
Method Summary
Modifier and TypeMethodDescriptionvoid
generate
(CodegenContext codegenContext, RoundContext roundContext, TypeInfo interfaceInfo, RepositoryGenerator repositoryGenerator) Generate persistence provider specific code.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.protected abstract String
provider()
Name of the provider.protected abstract TypeName
repositoryClassName
(TypeName baseName) Data repository interface implementing class name for specific persistence provider.Methods inherited from class io.helidon.data.codegen.common.BaseGenerator
decreasePadding, identifier, increasePadding, initializedVariable, nullValue, returnStatement, statement, throwException, throwException, value
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.helidon.data.codegen.common.spi.PersistenceGenerator
queryBuilder, statementGenerator
-
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 interfacePersistenceGenerator
- Parameters:
codegenContext
- code processing and generation contextroundContext
- codegen round contextinterfaceInfo
- data repository interface inforepositoryGenerator
- specific data repository code generator
-
provider
Name of the provider.- Returns:
- provider name
-
repositoryClassName
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 contextsrepositoryGenerator
- specific data repository code generatorrepositoryInfo
- data repository interface infoclassName
- implementing class name (from {#linkrepositoryClassName(TypeName)
})classModel
- target implementing class model builder
-