@Override
public List<ComponentFactory> findComponentFactories(final ComponentType componentType, final IModel<?> model) {
final Collection<ComponentFactory> componentFactoryList = componentFactoriesByType.get(componentType);
final List<ComponentFactory> matching = Lists.newArrayList();
for (final ComponentFactory componentFactory : componentFactoryList) {
final ApplicationAdvice appliesTo = componentFactory.appliesTo(componentType, model);
if (appliesTo.applies()) {
matching.add(componentFactory);
}
if (appliesTo.exclusively()) {
break;
}
}
if (matching.isEmpty()) {
// will just be one