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
ConstructorsModifierConstructorDescriptionprotectedBaseRepositoryMethodsGenerator(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 MethodParamsgenerateHeader(Method.Builder builder, TypedElementInfo methodInfo) Generate method header matching interface prototype and return method parameters.protected static TypeNamegenericReturnTypeArgument(TypedElementInfo methodInfo) protected static booleanisListOrCollection(TypeName typeName) protected static booleanCheck whether providedTypeNameisio.helidon.data.Page.protected static booleanCheck whether providedTypeNameisio.helidon.data.Slice.protected static booleanisSliceOrPage(TypeName typeName) protected static booleanprotected static StringparamElementName(TypedElementInfo param) Retrieve name of the method parameter from providedTypedElementInfoparam.protected abstract voidprocessParam(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, statementGeneratorMethods inherited from class io.helidon.data.codegen.common.BaseGenerator
decreasePadding, identifier, increasePadding, initializedVariable, nullValue, returnStatement, statement, throwException, throwException, valueMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods 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
ExtractTypeNameof generic argument from providedTypedElementInfomethodInforeturn type. Retrieves generic argument from single generic argument types likeListorStream- Parameters:
methodInfo- method info- Returns:
TypeNameof generic argument
-
isListOrCollection
- Parameters:
typeName- type to check- Returns:
- value of
truewhen providedTypeNameisListorCollection, value offalseotherwise
-
isStream
-
isSlice
Check whether providedTypeNameisio.helidon.data.Slice.- Parameters:
typeName- type to check- Returns:
- value of
truewhen providedTypeNameisio.helidon.data.Slice, value offalseotherwise
-
isPage
Check whether providedTypeNameisio.helidon.data.Page.- Parameters:
typeName- type to check- Returns:
- value of
truewhen providedTypeNameisio.helidon.data.Page, value offalseotherwise
-
isSliceOrPage
- Parameters:
typeName- type to check- Returns:
- value of
truewhen providedTypeNameisio.helidon.data.Sliceorio.helidon.data.Page, value offalseotherwise
-
paramElementName
Retrieve name of the method parameter from providedTypedElementInfoparam.- 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
-