public static IDirectory dir(IJarFileDirectory root, String relativePath) { List<String> pathComponents = IDirectoryUtil.splitPath(relativePath); if (pathComponents.size() == 0) { return root; } else if (pathComponents.size() == 1) { return root.getOrCreateDirectory(pathComponents.get(0)); } else { return findParentDirectory(root, pathComponents); } }
public static IDirectory dir(IJarFileDirectory root, String relativePath) { List<String> pathComponents = IDirectoryUtil.splitPath(relativePath); if (pathComponents.size() == 0) { return root; } else if (pathComponents.size() == 1) { return root.getOrCreateDirectory(pathComponents.get(0)); } else { return findParentDirectory(root, pathComponents); } }
public static IFile file(IJarFileDirectory root, String path) { List<String> pathComponents = IDirectoryUtil.splitPath(path); if (pathComponents.size() == 0) { throw new IllegalArgumentException("Cannot call file() with an empty path"); } else if (pathComponents.size() == 1) { return root.getOrCreateFile(pathComponents.get(0)); } else { String fileName = pathComponents.remove(pathComponents.size() - 1); IDirectory parentDir = findParentDirectory(root, pathComponents); return parentDir.file(fileName); } }
public static IFile file(IJarFileDirectory root, String path) { List<String> pathComponents = IDirectoryUtil.splitPath(path); if (pathComponents.size() == 0) { throw new IllegalArgumentException("Cannot call file() with an empty path"); } else if (pathComponents.size() == 1) { return root.getOrCreateFile(pathComponents.get(0)); } else { String fileName = pathComponents.remove(pathComponents.size() - 1); IDirectory parentDir = findParentDirectory(root, pathComponents); return parentDir.file(fileName); } }
private void processJarEntry(JarEntry e) { List<String> pathComponents = IDirectoryUtil.splitPath(e.getName()); if (pathComponents.isEmpty()) { return; } if (pathComponents.size() == 1) { String name = pathComponents.get(0); if (e.isDirectory()) { JarEntryDirectoryImpl resource = getOrCreateDirectory(name); resource.setEntry(e); } else { JarEntryFileImpl resource = getOrCreateFile(name); resource.setEntry(e); } } else { JarEntryDirectoryImpl parentDirectory = getOrCreateDirectory(pathComponents.get(0)); for (int i = 1; i < pathComponents.size() - 1; i++) { parentDirectory = parentDirectory.getOrCreateDirectory(pathComponents.get(i)); } if (e.isDirectory()) { JarEntryDirectoryImpl leafDir = parentDirectory.getOrCreateDirectory(pathComponents.get(pathComponents.size() - 1)); leafDir.setEntry(e); } else { JarEntryFileImpl leafFile = parentDirectory.getOrCreateFile(pathComponents.get(pathComponents.size() - 1)); leafFile.setEntry(e); } } }
private void processJarEntry(JarEntry e) { List<String> pathComponents = IDirectoryUtil.splitPath(e.getName()); if (pathComponents.isEmpty()) { return; } if (pathComponents.size() == 1) { String name = pathComponents.get(0); if (e.isDirectory()) { JarEntryDirectoryImpl resource = getOrCreateDirectory(name); resource.setEntry(e); } else { JarEntryFileImpl resource = getOrCreateFile(name); resource.setEntry(e); } } else { JarEntryDirectoryImpl parentDirectory = getOrCreateDirectory(pathComponents.get(0)); for (int i = 1; i < pathComponents.size() - 1; i++) { parentDirectory = parentDirectory.getOrCreateDirectory(pathComponents.get(i)); } if (e.isDirectory()) { JarEntryDirectoryImpl leafDir = parentDirectory.getOrCreateDirectory(pathComponents.get(pathComponents.size() - 1)); leafDir.setEntry(e); } else { JarEntryFileImpl leafFile = parentDirectory.getOrCreateFile(pathComponents.get(pathComponents.size() - 1)); leafFile.setEntry(e); } } }