package editfile; import java.util.Iterator; import fw.utils.CheckUtils; public class BaseNode implements INode { private long offset; private int size; private String name; private String offsetName; private String sizeName; public BaseNode() { this.name = null; this.offset = 0; this.size = 0; } public BaseNode(String name, long offset, int size) { this.name = name; this.offset = offset; this.size = size; } @Override public String getName() { return this.name; } @Override public long getOffset() { return this.offset; } @Override public int getSize() { return this.size; } @Override public Iterator<INode> iterator() { return null; } public void setOffset(long offset) { this.offset = offset; } public void setSize(int size) { this.size = size; } public void setName(String name) { this.name = name; } public void setOffset(String offsetName) { this.offsetName = offsetName; } public void setSize(String sizeName) { this.sizeName = sizeName; if (CheckUtils.isHalfNumber(this.sizeName)) { this.size = Integer.parseInt(sizeName); } } @Override public INode findNode(String findName) { if (findName == null) { return null; } if (findName.equals(this.name)) { return this; } return null; } @Override public NodeType getNodeType() { return NodeType.base; } @Override public String toString() { StringBuffer sb = new StringBuffer(); sb.append("[name:").append(this.name).append(",offset:").append(this.getOffset()).append( ",size:").append(this.getSize()).append("]"); return sb.toString(); } }
实现最基本的文件节点,扩展了sizeName,和offsetName,主要是考虑可以用前面已经解析的数据做为后续数据的参照
其它就没什么可以多说的