cn.hutool.core.lang.tree.Node Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hutool-all Show documentation
Show all versions of hutool-all Show documentation
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
package cn.hutool.core.lang.tree;
import cn.hutool.core.comparator.CompareUtil;
import java.io.Serializable;
/**
* 节点接口,提供节点相关的的方法定义
*
* @param ID类型
* @author looly
* @since 5.2.4
*/
public interface Node extends Comparable>, Serializable {
/**
* 获取ID
*
* @return ID
*/
T getId();
/**
* 设置ID
*
* @param id ID
* @return this
*/
Node setId(T id);
/**
* 获取父节点ID
*
* @return 父节点ID
*/
T getParentId();
/**
* 设置父节点ID
*
* @param parentId 父节点ID
* @return this
*/
Node setParentId(T parentId);
/**
* 获取节点标签名称
*
* @return 节点标签名称
*/
CharSequence getName();
/**
* 设置节点标签名称
*
* @param name 节点标签名称
* @return this
*/
Node setName(CharSequence name);
/**
* 获取权重
*
* @return 权重
*/
Comparable> getWeight();
/**
* 设置权重
*
* @param weight 权重
* @return this
*/
Node setWeight(Comparable> weight);
@SuppressWarnings({"unchecked", "rawtypes", "NullableProblems"})
@Override
default int compareTo(Node node) {
if(null == node){
return 1;
}
final Comparable weight = this.getWeight();
final Comparable weightOther = node.getWeight();
return CompareUtil.compare(weight, weightOther);
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy