Interface DirectedCodegen<C extends CodegenContext<S,?,I>,S,I extends SmithyIntegration<S,?,C>>      
- Type Parameters:
- C- Smithy- CodegenContextto use in directed methods.
- S- Settings object passed to directed methods as part of the context.
- I-- SmithyIntegrationtype to use in directed methods.
public interface DirectedCodegen<C extends CodegenContext<S,?,I>,S,I extends SmithyIntegration<S,?,C>>      
Provides a directed code generation abstraction to make it easier to
 implement a Smithy code generator for a single service that leverages
 other abstractions in smithy-codegen-core, including 
SmithyIntegration,
 SymbolProvider, CodegenContext, SymbolWriter,
 and WriterDelegator.- 
Method SummaryModifier and TypeMethodDescriptioncreateContext(CreateContextDirective<S, I> directive) Creates the codegen context object.createSymbolProvider(CreateSymbolProviderDirective<S> directive) Create theSymbolProviderused to map shapes to code symbols.default voidcustomizeAfterIntegrations(CustomizeDirective<C, S> directive) Performs any necessary code generation after all shapes are generated, using the created codegen context object after all integrations have performed customizations.default voidcustomizeBeforeIntegrations(CustomizeDirective<C, S> directive) Performs any necessary code generation after all shapes are generated, using the created codegen context object before integrations perform customizations.default voidcustomizeBeforeShapeGeneration(CustomizeDirective<C, S> directive) Performs any necessary code generation before all shapes are generated, using the created codegen context object.voidgenerateEnumShape(GenerateEnumDirective<C, S> directive) Generates the code needed for an enum shape, whether it's a string shape marked with the enum trait, or a proper enum shape introduced in Smithy IDL 2.0.voidgenerateError(GenerateErrorDirective<C, S> directive) Generates the code needed for an error structure.voidgenerateIntEnumShape(GenerateIntEnumDirective<C, S> directive) Generates the code needed for an intEnum shape.default voidgenerateOperation(GenerateOperationDirective<C, S> directive) Generates the code needed for an operation shape.default voidgenerateResource(GenerateResourceDirective<C, S> directive) Generates the code needed for a resource shape.voidgenerateService(GenerateServiceDirective<C, S> directive) Generates the code needed for a service shape.voidgenerateStructure(GenerateStructureDirective<C, S> directive) Generates the code needed for a structure shape.voidgenerateUnion(GenerateUnionDirective<C, S> directive) Generates the code needed for a union shape.
- 
Method Details- 
createSymbolProviderCreate theSymbolProviderused to map shapes to code symbols.- Parameters:
- directive- Directive context data.
- Returns:
- Returns the created SymbolProvider.
 
- 
createContextCreates the codegen context object.- Parameters:
- directive- Directive context data.
- Returns:
- Returns the created context object used by the rest of the directed generation.
 
- 
generateServiceGenerates the code needed for a service shape.- Parameters:
- directive- Directive to perform.
 
- 
generateResourceGenerates the code needed for a resource shape.- Parameters:
- directive- Directive to perform.
 
- 
generateOperationGenerates the code needed for an operation shape.- Parameters:
- directive- Directive to perform.
 
- 
generateStructureGenerates the code needed for a structure shape.This method should not be invoked for structures marked with the errortrait.- Parameters:
- directive- Directive to perform.
 
- 
generateErrorGenerates the code needed for an error structure.- Parameters:
- directive- Directive to perform.
 
- 
generateUnionGenerates the code needed for a union shape.- Parameters:
- directive- Directive to perform.
 
- 
generateEnumShapeGenerates the code needed for an enum shape, whether it's a string shape marked with the enum trait, or a proper enum shape introduced in Smithy IDL 2.0.- Parameters:
- directive- Directive to perform.
 
- 
generateIntEnumShapeGenerates the code needed for an intEnum shape.- Parameters:
- directive- Directive to perform.
 
- 
customizeBeforeShapeGenerationPerforms any necessary code generation before all shapes are generated, using the created codegen context object.- Parameters:
- directive- Directive to perform.
 
- 
customizeBeforeIntegrationsPerforms any necessary code generation after all shapes are generated, using the created codegen context object before integrations perform customizations.- Parameters:
- directive- Directive to perform.
 
- 
customizeAfterIntegrationsPerforms any necessary code generation after all shapes are generated, using the created codegen context object after all integrations have performed customizations.This method should be used to do things like: - Flush any code writers created by your WriterDelegator.
- Generate dependency manifests (e.g., poms) from WriterDelegator.
- Perform any remaining codegen tasks like formatting or validating the generated output.
 - Parameters:
- directive- Directive to perform.
 
 
-