Module org.mule.sdk.api
Annotation Interface MetadataScope
@Target(TYPE)
@Retention(RUNTIME)
@Documented
@MinMuleVersion("4.5.0")
public @interface MetadataScope
Associates the annotated Component to a
TypeKeysResolver, and an OutputTypeResolver that will be used to
resolve the Component's MetadataType dynamically
This annotation can be used at Operation or Extension level. When used at Extension level this resolvers will
serve as the default, and will be used to resolve the dynamic metadata of all its the operations and sources. If this
annotation is instead used at Operation level, it will override any default Extension declaration and use the resolvers
referenced at that level to resolve the metadata of that method. This will only affect the annotated element, while all the
other operations will still respond to the Extension default.
MetadataScope overriding works on all the declared resolvers, once the new scope is declared at a lower level than
Extension then none of the top level resolvers will work anymore as defaults, and will have to be re-defined in the new
declaration.- Since:
- 1.0
-
Optional Element Summary
Optional ElementsModifier and TypeOptional ElementDescriptionClass<? extends AttributesTypeResolver>Class<? extends TypeKeysResolver>Class<? extends OutputTypeResolver>
-
Element Details
-
keysResolver
Class<? extends TypeKeysResolver> keysResolver- Returns:
- the associated
TypeKeysResolverfor the annotated Component
- Default:
- org.mule.sdk.api.metadata.NullMetadataResolver.class
-
outputResolver
Class<? extends OutputTypeResolver> outputResolver- Returns:
- the associated
OutputTypeResolverfor the annotated Component
- Default:
- org.mule.sdk.api.metadata.NullMetadataResolver.class
-
attributesResolver
Class<? extends AttributesTypeResolver> attributesResolver- Returns:
- the associated
AttributesTypeResolverfor the annotated Component
- Default:
- org.mule.sdk.api.metadata.NullMetadataResolver.class
-