Package io.micronaut.aot.core.codegen
Class DelegatingSourceGenerationContext
java.lang.Object
io.micronaut.aot.core.codegen.DelegatingSourceGenerationContext
- All Implemented Interfaces:
AOTContext
Base class for source generation context which need to delegate
to another one.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addDiagnostics
(String category, String message) Adds a diagnostic message, which is going to be written in a log file.<T> @NonNull Optional<T>
Reads an entry from the context.@NonNull ApplicationContextAnalyzer
Returns the application context analyzer.@NonNull Configuration
Returns the source generators configuration.Returns the diagnostics map.@NonNull String
The package which should be used for generated classes.@NonNull Runtime
Returns the target runtime environment.@NonNull com.squareup.javapoet.JavaFile
javaFile
(com.squareup.javapoet.TypeSpec typeSpec) Generates a java file spec.<T> void
Stores an entry in the context.void
registerClassNeededAtCompileTime
(@NonNull Class<?> clazz) Registers a class as needed at compile time (where compile time is the compile time of generated classes).void
registerExcludedResource
(@NonNull String path) Registers a resource path as excluded.void
registerGeneratedResource
(@NonNull String path, Consumer<? super File> consumer) Registers a new generated resource.void
registerGeneratedSourceFile
(@NonNull com.squareup.javapoet.JavaFile javaFile) Registers a generated source file.void
registerServiceImplementation
(Class<?> serviceType, String simpleServiceName) Registers a generated service type.void
registerStaticInitializer
(com.squareup.javapoet.MethodSpec staticInitializer) Registers a code block to be executed statically when the optimized binary is loaded.<T> void
registerStaticOptimization
(String className, Class<T> optimizationKind, Consumer<? super com.squareup.javapoet.CodeBlock.Builder> bodyBuilder) Registers a static optimization method.
-
Constructor Details
-
DelegatingSourceGenerationContext
-
-
Method Details
-
getPackageName
Description copied from interface:AOTContext
The package which should be used for generated classes.- Specified by:
getPackageName
in interfaceAOTContext
- Returns:
- the package name
-
getConfiguration
Description copied from interface:AOTContext
Returns the source generators configuration.- Specified by:
getConfiguration
in interfaceAOTContext
- Returns:
- the configuration
-
getAnalyzer
Description copied from interface:AOTContext
Returns the application context analyzer.- Specified by:
getAnalyzer
in interfaceAOTContext
- Returns:
- the application context analyzer
-
registerGeneratedSourceFile
public void registerGeneratedSourceFile(@NonNull @NonNull com.squareup.javapoet.JavaFile javaFile) Description copied from interface:AOTContext
Registers a generated source file.- Specified by:
registerGeneratedSourceFile
in interfaceAOTContext
- Parameters:
javaFile
- the file to be added.
-
registerStaticInitializer
public void registerStaticInitializer(com.squareup.javapoet.MethodSpec staticInitializer) Description copied from interface:AOTContext
Registers a code block to be executed statically when the optimized binary is loaded.- Specified by:
registerStaticInitializer
in interfaceAOTContext
- Parameters:
staticInitializer
- the static initializer method
-
registerStaticOptimization
public <T> void registerStaticOptimization(String className, Class<T> optimizationKind, Consumer<? super com.squareup.javapoet.CodeBlock.Builder> bodyBuilder) Registers a static optimization method. This will automatically create a class which implements theStaticOptimizations
service type. The consumer should create a body which returns an instance of the optimization type.- Specified by:
registerStaticOptimization
in interfaceAOTContext
- Type Parameters:
T
- the type class of the optimization- Parameters:
className
- the name of the class to generateoptimizationKind
- the type of the optimizationbodyBuilder
- the builder of the body of the load() method
-
registerServiceImplementation
Registers a generated service type.- Specified by:
registerServiceImplementation
in interfaceAOTContext
- Parameters:
serviceType
- the type of the servicesimpleServiceName
- the simple name of the generated type
-
registerGeneratedResource
public void registerGeneratedResource(@NonNull @NonNull String path, Consumer<? super File> consumer) Description copied from interface:AOTContext
Registers a new generated resource.- Specified by:
registerGeneratedResource
in interfaceAOTContext
- Parameters:
path
- the relative path to the resource (including file name)consumer
- the consumer to be called when the resource is generated.
-
registerExcludedResource
Description copied from interface:AOTContext
Registers a resource path as excluded. Excluded resources should be removed, as much as possible, from the final binary/deliverable since they are either not used or substituted with code.- Specified by:
registerExcludedResource
in interfaceAOTContext
- Parameters:
path
- the path of the resource to exclude
-
registerClassNeededAtCompileTime
Description copied from interface:AOTContext
Registers a class as needed at compile time (where compile time is the compile time of generated classes). This will typically be used when source generators need classes which are not on the application classpath.- Specified by:
registerClassNeededAtCompileTime
in interfaceAOTContext
- Parameters:
clazz
- a class
-
javaFile
@NonNull public @NonNull com.squareup.javapoet.JavaFile javaFile(com.squareup.javapoet.TypeSpec typeSpec) Description copied from interface:AOTContext
Generates a java file spec.- Specified by:
javaFile
in interfaceAOTContext
- Parameters:
typeSpec
- the type spec of the main class- Returns:
- a java file
-
addDiagnostics
Description copied from interface:AOTContext
Adds a diagnostic message, which is going to be written in a log file.- Specified by:
addDiagnostics
in interfaceAOTContext
- Parameters:
category
- a category for the message, typically corresponding to the source generator typemessage
- a message to log
-
put
Description copied from interface:AOTContext
Stores an entry in the context. The entry may be read by other processors, as long as they are executed in the proper order.- Specified by:
put
in interfaceAOTContext
- Type Parameters:
T
- the type of the value- Parameters:
type
- the class of the value to storevalue
- the value to store
-
get
Description copied from interface:AOTContext
Reads an entry from the context.- Specified by:
get
in interfaceAOTContext
- Type Parameters:
T
- the type of the entry- Parameters:
type
- the class of the entry- Returns:
- an empty value if absent
-
getDiagnostics
Description copied from interface:AOTContext
Returns the diagnostics map.- Specified by:
getDiagnostics
in interfaceAOTContext
- Returns:
- the diagnostics
-
getRuntime
Description copied from interface:AOTContext
Returns the target runtime environment.- Specified by:
getRuntime
in interfaceAOTContext
- Returns:
- target runtime
-