docs: public void explore() {
          if (isLeaf) return;
          if (isGeneric) return;
          removeAllChildren();
  
          try {
              String addressPath = addressPath();
              ModelNode resourceDesc = executor.doCommand(addressPath + ":read-resource-description");
              resourceDesc = resourceDesc.get("result");
              ModelNode response = executor.doCommand(addressPath + ":read-resource(include-runtime=true,include-defaults=true)");
              ModelNode result = response.get("result");
              if (!result.isDefined()) return;
  
              List<String> childrenTypes = getChildrenTypes(addressPath);
              for (ModelNode node : result.asList()) {
                  Property prop = node.asProperty();
                  if (childrenTypes.contains(prop.getName())) { // resource node
                      if (hasGenericOperations(addressPath, prop.getName())) {
                          add(new ManagementModelNode(cliGuiCtx, new UserObject(node, prop.getName())));
                      }
                      if (prop.getValue().isDefined()) {
                          for (ModelNode innerNode : prop.getValue().asList()) {
                              UserObject usrObj = new UserObject(innerNode, prop.getName(), innerNode.asProperty().getName());
                              add(new ManagementModelNode(cliGuiCtx, usrObj));
                          }
                      }
                  } else { // attribute node
                      UserObject usrObj = new UserObject(node, resourceDesc, prop.getName(), prop.getValue().asString());
                      add(new ManagementModelNode(cliGuiCtx, usrObj));
                  }
              }
          } catch (Exception e) {
              e.printStackTrace();
          }
      }