package com.vincent.rsf.server.common.utils; import java.io.Serializable; import java.util.function.Function; /** * Created by vincent on 2021/1/19 */ public class NodeUtils { public StringBuilder path = new StringBuilder(); public StringBuilder pathName = new StringBuilder(); public interface NodeSupport { T query(T t); } public void generatePath0( NodeSupport support , T t , Function idMapper , Function nameMapper , Function parentIdMapper) { T parent = support.query(t); if (null != parent) { path.insert(0, idMapper.apply(parent)).insert(0,","); pathName.insert(0, nameMapper.apply(parent)).insert(0,","); if (parentIdMapper.apply(parent) != null && parentIdMapper.apply(parent) != 0) { generatePath0(support, parent, idMapper, nameMapper, parentIdMapper); } else { path.deleteCharAt(0); pathName.deleteCharAt(0); } } } }