package loon; import java.io.File; import loon.Files.FileType; import loon.core.FileHandle; public final class JavaSEFileHandle extends FileHandle { public JavaSEFileHandle(String fileName, FileType type) { super(fileName, type); } public JavaSEFileHandle(File file, FileType type) { super(file, type); } public FileHandle child(String name) { if (file.getPath().length() == 0) return new JavaSEFileHandle(new File(name), type); return new JavaSEFileHandle(new File(file, name), type); } public FileHandle sibling(String name) { if (file.getPath().length() == 0){ throw new RuntimeException("Cannot get the sibling of the root."); } return new JavaSEFileHandle(new File(file.getParent(), name), type); } public FileHandle parent() { File parent = file.getParentFile(); if (parent == null) { if (type == FileType.Absolute){ parent = new File("/"); } else{ parent = new File(""); } } return new JavaSEFileHandle(parent, type); } public File file() { if (type == FileType.External){ return new File(JavaSEFiles.externalPath, file.getPath()); } if (type == FileType.Local){ return new File(JavaSEFiles.localPath, file.getPath()); } return file; } }