in PluginsAndFeatures/azure-toolkit-for-intellij/azure-sdk-reference-book/src/main/java/com/microsoft/azure/toolkit/intellij/azuresdk/referencebook/AzureSdkTreePanel.java [211:237]
private void loadServiceData(AzureSdkServiceEntity service, AzureSdkCategoryEntity categoryService, MutableTreeNode categoryNode, String... filters) {
if (Objects.isNull(service) || CollectionUtils.isEmpty(service.getContent())) {
return;
}
final boolean categoryMatched = this.isMatchedFilters(categoryService.getCategory(), filters);
if (CollectionUtils.size(service.getContent()) == 1 && StringUtils.equals(service.getName(), service.getContent().get(0).getName())) {
final AzureSdkFeatureEntity feature = service.getContent().get(0);
final boolean featureMatched = this.isMatchedFilters(feature.getName(), filters);
if (ArrayUtils.isEmpty(filters) || categoryMatched || featureMatched) {
final DefaultMutableTreeNode featureNode = new DefaultMutableTreeNode(feature);
this.model.insertNodeInto(featureNode, categoryNode, categoryNode.getChildCount());
}
return;
}
final MutableTreeNode serviceNode = new DefaultMutableTreeNode(service);
final boolean serviceMatched = this.isMatchedFilters(service.getName(), filters);
for (final AzureSdkFeatureEntity feature : service.getContent()) {
final boolean featureMatched = this.isMatchedFilters(feature.getName(), filters);
if (ArrayUtils.isEmpty(filters) || categoryMatched || serviceMatched || featureMatched) {
final DefaultMutableTreeNode featureNode = new DefaultMutableTreeNode(feature);
this.model.insertNodeInto(featureNode, serviceNode, serviceNode.getChildCount());
}
}
if (ArrayUtils.isEmpty(filters) || categoryMatched || serviceMatched || serviceNode.getChildCount() > 0) {
this.model.insertNodeInto(serviceNode, categoryNode, categoryNode.getChildCount());
}
}