一个简单的目录节点类定义
来源:互联网 发布:淘宝虎扑伙伴是真的吗 编辑:程序博客网 时间:2024/05/20 10:55
public class DirNode implements Comparable<DirNode>{ public final DirNode parent; public final int level; public final String name; private final String separator; private String path; public DirNode(DirNode parent, String name) { this(parent,name,File.separator); } public DirNode(DirNode parent, String name,String separator) { this.parent = parent; this.level = parent == null ? 1 : parent.level + 1; if(name == null || name.trim().length() == 0){ throw new IllegalArgumentException("Illegal node name"); } this.name = name; this.separator = separator; } public final String getPath() { if(path == null){ path = computePath(this.separator); } return path; } public String computePath(String separator){ StringBuilder sb = new StringBuilder(); DirNode root = this; sb.append(root.name).append(separator); while (root.parent != null){ root = root.parent; sb.insert(0,separator).insert(0,root.name); } return sb.toString(); } public boolean isParent(DirNode node){ if(parent == null || node == null) return false; DirNode root = this; while (root.parent != null){ if(root.parent.equals(node)){ return true; } root = root.parent; } return false; } @Override public int compareTo(@NonNull DirNode o) { return this.level - o.level; } @Override public String toString() { return "DirNode{" + "parent=" + (parent == null ? "null" : "@" + Integer.toHexString(parent.hashCode())) + ", level=" + level + ", name='" + name + '\'' + ", separator='" + separator + '\'' + ", path='" + getPath() + '\'' + '}'; }}
阅读全文
0 0
- 一个简单的目录节点类定义
- Jackrabbit的简单节点定义文件格式
- 一个简单的javascript类定义例子
- C++定义一个简单类
- 创建一个简单的debugfs文件系统节点
- 创建一个简单的device_create_file文件节点
- [JavaScript]类之一---一个简单的javascript类定义例子
- 一个简单的操作活动目录的类(ADHelper)
- 一个简单的操作活动目录的类(ADHelper)
- 一个简单.X文件的定义
- 定义一个最简单的委托
- 如何定义一个简单的Concurrent Program
- 8.2 定义一个简单的泛型类
- mysql定义一个简单的存储过程
- 一个简单的扫描目录的程序
- 只有两层节点且每个父节点只有一个子节点的简单折叠方法
- 一个简单的树型目录实现
- 一个简单的文件目录打印程序
- Java中多线程并发处理方式
- mysql ALTER
- ActiveMQ消费者demo--学习笔记
- JavaScript加性操作符引发的常见错误——弱类型天然错误
- 二进制炸弹实验
- 一个简单的目录节点类定义
- 最近5年133个Java面试问题列表
- lintcode 最后一个单词的长度
- Android 混淆打包方案
- Android ActivityManagerServices基本框架
- PHP 简单的商城网站功能原理
- 和为零的子矩阵-LintCode
- PHP基础知识篇(一)
- BZOJ1087 互不侵犯king(状压DP)