
shz.model.TreeNodeMetadata Maven / Gradle / Ivy
package shz.model;
import shz.Help;
import shz.Validator;
import shz.constant.ArrayConstant;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* 树结构节点元数据
*/
public class TreeNodeMetadata> extends TreeNode {
protected String rootId;
protected String parentId;
protected int level;
protected String tag;
public final String getRootId() {
return rootId;
}
public final void setRootId(String rootId) {
this.rootId = rootId;
}
public final String getParentId() {
return parentId;
}
public final void setParentId(String parentId) {
this.parentId = parentId;
}
public final int getLevel() {
return level;
}
public final void setLevel(int level) {
this.level = level;
}
public final String getTag() {
return tag;
}
public final void setTag(String tag) {
this.tag = tag;
}
@Override
public String toString() {
return "TreeNodeMetadata{" +
"rootId='" + rootId + '\'' +
", parentId='" + parentId + '\'' +
", level=" + level +
", tag='" + tag + '\'' +
", id='" + id + '\'' +
", childes=" + childes +
'}';
}
/**
* 节点比较器
*/
public static int lbtCmp(int idx, String tag1, String tag2, char[] arrayX) {
return Long.compare(
idx <= 0 ? Help.stringToLong(tag1, arrayX) - Help.stringToLong(tag2, arrayX)
: Help.stringToLong(tag1.substring(idx), arrayX) - Help.stringToLong(tag2.substring(idx), arrayX),
0L
);
}
public static int lbtCmp(int idx, String tag1, String tag2) {
return lbtCmp(idx, tag1, tag2, ArrayConstant.CHAR_ARRAY_62);
}
/**
* 打标签
*/
public static String tag(String pt, String lbt, char[] arrayX) {
if (Validator.isBlank(lbt)) return Validator.isBlank(pt) ? arrayX[0] + "" : pt + "." + arrayX[0];
int idx = lbt.lastIndexOf(".");
return idx == -1 ? Help.increment(lbt, arrayX) : lbt.substring(0, idx + 1) + Help.increment(lbt.substring(idx + 1), arrayX);
}
public static String tag(String pt, String lbt) {
return tag(pt, lbt, ArrayConstant.CHAR_ARRAY_62);
}
/**
* 获取路径标签集
*/
public static List dpTags(String tag) {
if (Validator.isBlank(tag)) return Collections.emptyList();
String[] a = tag.split("\\.");
if (a.length < 2) return Collections.emptyList();
List result = new ArrayList<>(a.length - 1);
String prev = a[0];
result.add(prev);
for (int i = 1; i < a.length - 1; ++i) {
prev = prev + "." + a[i];
result.add(prev);
}
return result;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy