Class Kotlin
java.lang.Object
io.micronaut.starter.feature.lang.kotlin.Kotlin
- All Implemented Interfaces:
io.micronaut.core.naming.Described
,io.micronaut.core.naming.Named
,io.micronaut.core.order.Ordered
,DefaultFeature
,Feature
,LanguageFeature
,OpenRewriteFeature
@Requires(property="micronaut.starter.feature.kotlin.enabled",
value="true",
defaultValue="true")
@Singleton
public class Kotlin
extends Object
implements LanguageFeature, OpenRewriteFeature
Represents the Kotlin language feature for the project generator.
This class manages Kotlin application features, processes feature selection, applies Kotlin-specific configurations such as setting the Kotlin version,
-
Field Summary
FieldsFields inherited from interface io.micronaut.core.order.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addKotlinVersionProperty
(GeneratorContext generatorContext, ModuleContext module) Adds the Kotlin version property to the build based on the resolved Kotlin BOM coordinate.void
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)
.@NonNull String
getName()
The name of the feature.getRecipes
(GeneratorContext generatorContext) boolean
isKotlin()
void
processSelectedFeatures
(FeatureContext featureContext) If this method is called for a given feature then that feature was explicitly selected or was included by default as a result ofDefaultFeature.shouldApply(io.micronaut.starter.options.Options, java.util.Set)
.protected void
processSelectedFeatures
(FeatureContext featureContext, Predicate<Feature> filter) Processes selected features by addingApplicationFeature
based on the application type if none is explicitly present.boolean
shouldApply
(Options options, Set<Feature> selectedFeatures) Determines if the feature should be applied to the 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
getCategory, getDescription, getTitle, isCommunity, isPreview
Methods inherited from interface io.micronaut.projectgen.core.feature.LanguageFeature
getOrder, isGroovy, isJava, isVisible, supports
Methods inherited from interface io.micronaut.projectgen.core.openrewrite.OpenRewriteFeature
getFrameworkDocumentation, getThirdPartyDocumentation, processRecipes
-
Field Details
-
applicationFeatures
-
-
Constructor Details
-
Kotlin
-
-
Method Details
-
getName
Description copied from interface:Feature
The name of the feature. It must be unique. -
processSelectedFeatures
Description copied from interface:Feature
If this method is called for a given feature then that feature was explicitly selected or was included by default as a result ofDefaultFeature.shouldApply(io.micronaut.starter.options.Options, java.util.Set)
. This method can be implemented to allow features to modify the list of features that will apply to the project. The methodsFeatureContext.addFeature(Feature)
andFeatureContext.exclude(FeaturePredicate)
are the primary ways to add and remove features from the context.FeatureContext.isPresent(Class)
can be used to determine the existence of other features in order to make decisions.- Specified by:
processSelectedFeatures
in interfaceFeature
- Parameters:
featureContext
- The feature context
-
processSelectedFeatures
Processes selected features by addingApplicationFeature
based on the application type if none is explicitly present.- Parameters:
featureContext
- The context containing selected features.filter
- Predicate to filter applicable features.
-
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.- Specified by:
apply
in interfaceFeature
- Specified by:
apply
in interfaceOpenRewriteFeature
- Parameters:
generatorContext
- THe generator context
-
addKotlinVersionProperty
Adds the Kotlin version property to the build based on the resolved Kotlin BOM coordinate.- Parameters:
generatorContext
- The context for project generation.module
- The module to which the property should be added.
-
getRecipes
- Specified by:
getRecipes
in interfaceOpenRewriteFeature
-
isKotlin
public boolean isKotlin()- Specified by:
isKotlin
in interfaceLanguageFeature
-
shouldApply
Description copied from interface:DefaultFeature
Determines if the feature should be applied to the project. Default features do not need to be concerned if the feature was already selected and therefore is already in the list of selected features. The addition to the set is based on the identity of the feature instance and all features are singletons.- Specified by:
shouldApply
in interfaceDefaultFeature
- Parameters:
options
- The optionsselectedFeatures
- The features manually selected by the user- Returns:
- True if the feature should apply
-