com.ideaaedi.commonds.tree.Treeify Maven / Gradle / Ivy
The newest version!
package com.ideaaedi.commonds.tree;
import java.util.List;
/**
* 单父节点树 - 以K为纽带, 树化T
*
* 多父节点树,见{@link Treeify}
*
* @author JustryDeng
* @since 1.0.0
*/
@SuppressWarnings({"unused", "SpellCheckingInspection"})
public interface Treeify> {
/**
* (以this实例为基础,)获取新的t实例
*
* p.s. 当树中的节点和原对象节点使用同一个引用时,不当的编码可能导致一些意料外的bug; 所以这里提供这种方法,[如果需要的话]可以根据原对象获取一个新的对象
*
* @return t实例
*/
T obtainNewInstance();
/**
* 获取当前节点的key
*
* @return 当前节点的key
*/
K obtainNodeKey();
/**
* 获取父节点的key
*
* @return 父节点的key
*/
K obtainParentNodeKey();
/**
* 获取子节点集合
*
* @return 子节点集合
*/
List obtainChildren();
/**
* 初始化子节点信息
*/
void initChildren();
/**
* 断开父子节点之间的children集合联系
*/
void disconnectChildren();
}