private void loadServiceData()

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());
        }
    }