code: private static <ID, DATA> void generateSubNode(final TreeSource<ID, DATA> source, final DefaultTree<ID, DATA> node) {
  		List<ID> items = source.listChildrenId(node.getId());
  		if (items == null || items.isEmpty()) {
  			return;
  		}
  		for (ID id : items) {
  			DATA item = source.getItem(id);
  			node.appendChildNode(id, item);
  		}
  		for (DefaultTree<ID, DATA> subNode : new ArrayList<>(node.getChildNodes().values())) {
  			generateSubNode(source, subNode);
  		}
  	}
docs: 向 TreeSource 增加新的节点。
  
  @param <ID>
  数据标识
  @param <DATA>
  数据
  @param source
  节点构造源
  @param node
  父节点