use of org.mule.runtime.api.metadata.resolving.NamedTypeResolver in project mule by mulesoft.
the class MetadataComponentModelValidator method validateResolversName.
private void validateResolversName(ComponentModel model, MetadataResolverFactory resolverFactory, Table<String, String, Class<?>> names, ProblemsReporter problemsReporter) {
List<NamedTypeResolver> resolvers = new LinkedList<>();
resolvers.addAll(getAllInputResolvers(model, resolverFactory));
resolvers.add(resolverFactory.getOutputResolver());
resolvers.stream().filter(r -> !r.getClass().equals(NullMetadataResolver.class)).forEach(r -> {
if (isBlank(r.getResolverName())) {
problemsReporter.addError(new Problem(model, format(EMPTY_RESOLVER_NAME, getComponentModelTypeName(model), model.getName(), r.getClass().getSimpleName(), "resolver")));
} else {
if (names.get(r.getCategoryName(), r.getResolverName()) != null && names.get(r.getCategoryName(), r.getResolverName()) != r.getClass()) {
problemsReporter.addError(new Problem(model, format("%s [%s] specifies metadata resolvers with repeated name [%s] for the same category [%s]. Resolver names should be unique for a given category. Affected resolvers are '%s' and '%s'", getComponentModelTypeName(model), model.getName(), r.getResolverName(), r.getCategoryName(), names.get(r.getCategoryName(), r.getResolverName()).getSimpleName(), r.getClass().getSimpleName())));
}
names.put(r.getCategoryName(), r.getResolverName(), r.getClass());
}
});
}
Aggregations