Class MetadataResolverServiceStrategy

All Implemented Interfaces:
Function<ApplicationContext,ServiceableComponent<MetadataResolver>>, Component, DestructableComponent, IdentifiableComponent, IdentifiedComponent, InitializableComponent

public class MetadataResolverServiceStrategy extends AbstractIdentifiableInitializableComponent implements Function<ApplicationContext,ServiceableComponent<MetadataResolver>>
Strategy for summoning up a MetadataResolver from a populated ApplicationContext.

This is made somewhat complex by the need to chain multiple, top level Metadata Resolvers, but to not combine non top level resolvers. The parser will create a MetadataProviderContainer for each top level resolver. If we encounter but one we are done (it is a ServiceableComponent already), otherwise we need to chain all the children together and wrap them into a Serviceable Component.