@Override public MetaDataRetrieval getComponentMetaDataRetrieval(Signature signature) { if(metaData == null) return null; for(ComponentMetaDataLoaderFactory<M> factory : factories) { MetaDataRetrieval retrieval = factory.createComponentMetaDataRetrieval(metaData, signature, getScope(), classLoader); if(retrieval != null) return retrieval; } // TODO: shouldn't this be a factory? if(signature instanceof DeclaredMethodSignature) return new MethodMetaDataRetrieval((DeclaredMethodSignature) signature); return super.getComponentMetaDataRetrieval(signature); }