Package io.helidon.data.codegen.common
Class BaseRepositoryMethodsGenerator
java.lang.Object
io.helidon.data.codegen.common.BaseGenerator
io.helidon.data.codegen.common.BaseRepositoryInterfaceGenerator
io.helidon.data.codegen.common.BaseRepositoryMethodsGenerator
- All Implemented Interfaces:
RepositoryInterfaceGenerator
Data repository interface code generator base class for methods generators.
-
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
BaseRepositoryMethodsGenerator
(RepositoryInfo repositoryInfo, ClassModel.Builder classModel, CodegenContext codegenContext, PersistenceGenerator persistenceGenerator) Creates an instance of data repository interface code generator base class for methods generators. -
Method Summary
Modifier and TypeMethodDescriptionprotected MethodParams
generateHeader
(Method.Builder builder, TypedElementInfo methodInfo) Generate method header matching interface prototype and return method parameters.protected static TypeName
genericReturnTypeArgument
(TypedElementInfo methodInfo) protected static boolean
isListOrCollection
(TypeName typeName) protected static boolean
Check whether providedTypeName
isio.helidon.data.Page
.protected static boolean
Check whether providedTypeName
isio.helidon.data.Slice
.protected static boolean
isSliceOrPage
(TypeName typeName) protected static boolean
protected static String
paramElementName
(TypedElementInfo param) Retrieve name of the method parameter from providedTypedElementInfo
param
.protected abstract void
processParam
(MethodParams.Builder builder, TypedElementInfo paramInfo) Process method parameter.Methods inherited from class io.helidon.data.codegen.common.BaseRepositoryInterfaceGenerator
call, classModel, codegenContext, extendsType, methodWarning, optionalFromQuery, optionalOfNullable, persistenceGenerator, queryBuilder, repositoryInfo, run, statementGenerator
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.RepositoryInterfaceGenerator
generate
-
Constructor Details
-
BaseRepositoryMethodsGenerator
protected BaseRepositoryMethodsGenerator(RepositoryInfo repositoryInfo, ClassModel.Builder classModel, CodegenContext codegenContext, PersistenceGenerator persistenceGenerator) Creates an instance of data repository interface code generator base class for methods generators.- Parameters:
repositoryInfo
- data repository interface infoclassModel
- target class buildercodegenContext
- code processing and generation contextpersistenceGenerator
- persistence provider specific generator
-
-
Method Details
-
genericReturnTypeArgument
ExtractTypeName
of generic argument from providedTypedElementInfo
methodInfo
return type. Retrieves generic argument from single generic argument types likeList
orStream
- Parameters:
methodInfo
- method info- Returns:
TypeName
of generic argument
-
isListOrCollection
- Parameters:
typeName
- type to check- Returns:
- value of
true
when providedTypeName
isList
orCollection
, value offalse
otherwise
-
isStream
-
isSlice
Check whether providedTypeName
isio.helidon.data.Slice
.- Parameters:
typeName
- type to check- Returns:
- value of
true
when providedTypeName
isio.helidon.data.Slice
, value offalse
otherwise
-
isPage
Check whether providedTypeName
isio.helidon.data.Page
.- Parameters:
typeName
- type to check- Returns:
- value of
true
when providedTypeName
isio.helidon.data.Page
, value offalse
otherwise
-
isSliceOrPage
- Parameters:
typeName
- type to check- Returns:
- value of
true
when providedTypeName
isio.helidon.data.Slice
orio.helidon.data.Page
, value offalse
otherwise
-
paramElementName
Retrieve name of the method parameter from providedTypedElementInfo
param
.- Parameters:
param
- method parameter info- Returns:
- name of the method parameter
-
generateHeader
Generate method header matching interface prototype and return method parameters.- Parameters:
builder
- method buildermethodInfo
- method info- Returns:
- method parameters
-
processParam
Process method parameter. Extending class must implement this method to properly handle each parameter of the generated method.- Parameters:
builder
- method builderparamInfo
- method parameter info
-