/* * Copyright 2013 Guidewire Software, Inc. */ package gw.plugin.ij.filesystem; import com.intellij.openapi.vfs.VirtualFile; import gw.fs.IDirectory; import gw.fs.IFile; import gw.fs.IResource; import org.jetbrains.annotations.NotNull; import java.io.File; import java.io.IOException; public class IDEAJarDirectory extends IDEADirectory { public IDEAJarDirectory(@NotNull VirtualFile virtualFile) { super(virtualFile); } @Override public IDirectory dir(String relativePath) { VirtualFile child = _virtualFile.findFileByRelativePath(normalize(relativePath)); return child == null ? null : new IDEAJarDirectory(child); } @Override public IFile file(String path) { VirtualFile child = _virtualFile.findFileByRelativePath(normalize(path)); return child == null ? null : new IDEAFile(child); } private String normalize(String relativePath) { return relativePath.replace(File.separatorChar, '/'); } @Override public String relativePath(IResource resource) { return ((IDEAResource) resource)._path.substring(_path.length() + 2); } @Override protected VirtualFile create(VirtualFile virtualFile, String name) throws IOException { throw new RuntimeException("Not supported"); } @Override public boolean mkdir() throws IOException { throw new RuntimeException("Not supported"); } }