
ars.util.AbstractTree Maven / Gradle / Ivy
The newest version!
package ars.util;
import java.util.Map;
import java.util.List;
import java.util.HashMap;
import java.util.ArrayList;
/**
* 树抽象实现
*
* @param 树对象类型
* @author wuyongqiang
*/
public abstract class AbstractTree> implements Tree, Formable {
private static final long serialVersionUID = 1L;
private Boolean leaf; // 是否为叶节点
private Integer level; // 当前节点层级
private T parent; // 父节点
private List children = new ArrayList(0); // 子节点列表
@Override
public Boolean getLeaf() {
if (this.leaf == null) {
this.leaf = this.children.isEmpty();
}
return this.leaf;
}
@Override
public void setLeaf(Boolean leaf) {
this.leaf = leaf;
}
@Override
public Integer getLevel() {
if (this.level == null) {
this.level = Trees.getLevel(this);
}
return this.level;
}
@Override
public void setLevel(Integer level) {
this.level = level;
}
@Override
public T getParent() {
return this.parent;
}
@SuppressWarnings("unchecked")
@Override
public List getParents() {
return (List) Trees.getParents(this);
}
@Override
public void setParent(T parent) {
this.parent = parent;
}
@Override
public List getChildren() {
return this.children;
}
@Override
public void setChildren(List children) {
this.children = children;
}
@Override
public Map format() {
Map values = new HashMap();
values.put("leaf", this.getLeaf());
values.put("level", this.getLevel());
values.put("children", this.children);
return values;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy