Class AbstractFunctionFeature
java.lang.Object
io.micronaut.starter.feature.function.AbstractFunctionFeature
- All Implemented Interfaces:
io.micronaut.core.naming.Described
,io.micronaut.core.naming.Named
,io.micronaut.core.order.Ordered
,Feature
,FunctionFeature
,MicronautRuntimeFeature
- Direct Known Subclasses:
AbstractAzureFunction
,AbstractGoogleCloudFunction
,OracleFunction
public abstract class AbstractFunctionFeature
extends Object
implements FunctionFeature, MicronautRuntimeFeature
Abstract function implementation.
- Since:
- 1.0.0
- Author:
- graemerocher
-
Field Summary
Fields inherited from interface io.micronaut.starter.feature.MicronautRuntimeFeature
PROPERTY_MICRONAUT_RUNTIME
Fields inherited from interface io.micronaut.core.order.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
apply
(GeneratorContext generatorContext) If this method is called for a given feature that means the feature was explicitly selected, included by default as a result ofDefaultFeature.shouldApply(io.micronaut.starter.options.Options, java.util.Set)
, or added explicitly by another feature throughFeatureContext.addFeature(Feature)
.protected void
applyFunction
(GeneratorContext generatorContext, ApplicationType type) Applies the function setup based on the application type.protected void
applyTestTemplate
(GeneratorContext generatorContext, Project project, String name) Applies the test templates to the module.protected abstract String
getBuildCommand
(BuildTool buildTool) protected abstract String
getRunCommand
(BuildTool buildTool) protected String
getTestSuffix
(ApplicationType type) Returns the suffix used for function test class names.protected com.fizzed.rocker.RockerModel
groovyControllerTemplate
(Project project, boolean useSerde) Returns the Groovy function controller template.protected abstract com.fizzed.rocker.RockerModel
groovyJUnitTemplate
(Project project) protected com.fizzed.rocker.RockerModel
javaControllerTemplate
(Project project, boolean useSerde) Returns the Java function controller template.protected abstract com.fizzed.rocker.RockerModel
javaJUnitTemplate
(Project project) protected abstract com.fizzed.rocker.RockerModel
koTestTemplate
(Project project) protected com.fizzed.rocker.RockerModel
kotlinControllerTemplate
(Project project, boolean useSerde) Returns the Kotlin function controller template.protected abstract com.fizzed.rocker.RockerModel
kotlinJUnitTemplate
(Project project) protected Optional<com.fizzed.rocker.RockerModel>
readmeTemplate
(GeneratorContext generatorContext, Project project, BuildTool buildTool) Returns the README template for this function feature, if any.abstract com.fizzed.rocker.RockerModel
spockTemplate
(Project project) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.micronaut.core.naming.Described
getDescription
Methods inherited from interface io.micronaut.projectgen.core.feature.Feature
getDescription, getFrameworkDocumentation, getName, getOrder, getThirdPartyDocumentation, getTitle, isCommunity, isPreview, isVisible, processSelectedFeatures
Methods inherited from interface io.micronaut.starter.feature.function.FunctionFeature
getCategory, supports
Methods inherited from interface io.micronaut.starter.feature.MicronautRuntimeFeature
addMicronautRuntimeBuildProperty, resolveMicronautRuntime
-
Constructor Details
-
AbstractFunctionFeature
public AbstractFunctionFeature()
-
-
Method Details
-
apply
Description copied from interface:Feature
If this method is called for a given feature that means the feature was explicitly selected, included by default as a result ofDefaultFeature.shouldApply(io.micronaut.starter.options.Options, java.util.Set)
, or added explicitly by another feature throughFeatureContext.addFeature(Feature)
. At this point the feature list is set and cannot change. -
javaControllerTemplate
Returns the Java function controller template. Subclasses may override to customize the template.- Parameters:
project
- the project contextuseSerde
- whether Serde serialization is enabled- Returns:
- the Rocker template for the Java controller
-
kotlinControllerTemplate
Returns the Kotlin function controller template. Subclasses may override to customize the template.- Parameters:
project
- the project contextuseSerde
- whether Serde serialization is enabled- Returns:
- the Rocker template for the Kotlin controller
-
groovyControllerTemplate
Returns the Groovy function controller template. Subclasses may override to customize the template.- Parameters:
project
- the project contextuseSerde
- whether Serde serialization is enabled- Returns:
- the Rocker template for the Groovy controller
-
applyFunction
Applies the function setup based on the application type. Subclasses may override to customize how function templates and dependencies are applied.- Parameters:
generatorContext
- the generator contexttype
- the application type
-
getTestSuffix
Returns the suffix used for function test class names. Subclasses may override to provide custom suffixes.- Parameters:
type
- the application type- Returns:
- the test class name suffix
-
applyTestTemplate
Applies the test templates to the module. Subclasses may override to customize the test generation logic.- Parameters:
generatorContext
- the generator contextproject
- the projectname
- the name of the test class
-
readmeTemplate
protected Optional<com.fizzed.rocker.RockerModel> readmeTemplate(GeneratorContext generatorContext, Project project, BuildTool buildTool) Returns the README template for this function feature, if any. Subclasses may override to provide custom documentation.- Parameters:
generatorContext
- the generator contextproject
- the projectbuildTool
- the build tool used- Returns:
- an optional Rocker model for the README
-
getRunCommand
-
getBuildCommand
-
javaJUnitTemplate
-
kotlinJUnitTemplate
-
groovyJUnitTemplate
-
koTestTemplate
-
spockTemplate
-