use of org.talend.sdk.component.runtime.internationalization.FamilyBundle in project component-runtime by Talend.
the class ConfigurationTypeResource method toNodes.
private ConfigTypeNodes toNodes(final String language, final Predicate<String> filter, final boolean lightPayload) {
final Locale locale = localeMapper.mapLocale(language);
return manager.find(Stream::of).filter(c -> c.get(RepositoryModel.class) != null).map(c -> c.get(RepositoryModel.class).getFamilies().stream().filter(f -> !f.getConfigs().isEmpty()).flatMap(family -> {
final FamilyBundle resourcesBundle = family.getMeta().findBundle(c.getLoader(), locale);
final Stream<ConfigTypeNode> familyNode;
if (filter.test(family.getId())) {
final ConfigTypeNode node = new ConfigTypeNode();
node.setId(family.getId());
node.setName(family.getMeta().getName());
node.setDisplayName(resourcesBundle.displayName().orElse(family.getMeta().getName()));
node.setEdges(family.getConfigs().stream().map(Config::getId).collect(toSet()));
familyNode = Stream.of(node);
} else {
familyNode = Stream.empty();
}
return Stream.concat(familyNode, createNode(family.getId(), family.getMeta().getName(), family.getConfigs().stream(), resourcesBundle, c, locale, filter, lightPayload));
})).collect(() -> {
final ConfigTypeNodes nodes = new ConfigTypeNodes();
nodes.setNodes(new HashMap<>());
return nodes;
}, (root, children) -> root.getNodes().putAll(children.collect(toMap(ConfigTypeNode::getId, identity()))), (first, second) -> first.getNodes().putAll(second.getNodes()));
}
Aggregations