public DataNode find(Path path) { if (path.isRoot()) { return rootDataNode; } else { DataNode parent = find(path.getParent()); if (parent == null) { return null; } else if (parent instanceof DirectoryNode) { DirectoryNode dirNode = (DirectoryNode) parent; return dirNode.get(path.getName()); } else { return null; } } }