Interface WalkingDeclarationEnricher

All Superinterfaces:
DeclarationEnricher
All Known Implementing Classes:
BackPressureDeclarationEnricher, BooleanParameterDeclarationEnricher, ClusterSupportEnricher, ConfigRefDeclarationEnricher, ConnectionProviderDeclarationEnricher, ContentParameterDeclarationEnricher, DefaultStereotypeEnricher, ErrorMappingsParameterDeclarationEnricher, ExecutionTypeDeclarationEnricher, ExtensionsErrorsDeclarationEnricher, ExtensionTypesDeclarationEnricher, NamedObjectDeclarationEnricher, OAuthDeclarationEnricher, ParameterDslDeclarationEnricher, ParameterLayoutOrderDeclarationEnricher, ReconnectionStrategyDeclarationEnricher, RedeliveryPolicyDeclarationEnricher, StreamingDeclarationEnricher, TargetParameterDeclarationEnricher, TransactionalDeclarationEnricher

public interface WalkingDeclarationEnricher extends DeclarationEnricher
Optimization for enrichers which would normally use a DeclarationEnricher to implement their logic, a pattern we found to be quite common. This results in several "walks"s; being performed over the declaration, which becomes computationally expensive.

This interface allows to optimize that by extracting the performed logic to the getWalkDelegate(ExtensionLoadingContext) method, which gives Mule the ability to reduce the number of walks necessary to perform the enrichment.

This interface still adheres to the DeclarationEnricher contract and thus the enrich(ExtensionLoadingContext) method must still work, but delegating to the WalkingDeclarationEnricher.DeclarationEnricherWalkDelegate returned by the getWalkDelegate(ExtensionLoadingContext) method.

Since:
1.5.0