DB: more dependencies
[fedora-idea.git] / platform-api / src / com / intellij / openapi / roots / ui / LightFilePointer.java
blob7a4115ac4cda992c92336a1eafae6252cf6d681c
1 package com.intellij.openapi.roots.ui;
3 import com.intellij.openapi.vfs.JarFileSystem;
4 import com.intellij.openapi.vfs.VirtualFile;
5 import com.intellij.openapi.vfs.VirtualFileManager;
6 import org.jetbrains.annotations.NotNull;
8 import java.io.File;
10 public class LightFilePointer {
11 private String myUrl;
12 private VirtualFile myFile;
14 public LightFilePointer(String url) {
15 myUrl = url;
18 public VirtualFile getFile() {
19 refreshFile();
20 return myFile;
23 @NotNull
24 public String getUrl() {
25 return myUrl;
28 @NotNull
29 public String getFileName() {
30 if (myFile != null) {
31 return myFile.getName();
33 else {
34 int index = myUrl.lastIndexOf('/');
35 return index >= 0 ? myUrl.substring(index + 1) : myUrl;
39 @NotNull
40 public String getPresentableUrl() {
41 VirtualFile file = getFile();
42 if (file != null) return file.getPresentableUrl();
43 return toPresentableUrl(myUrl);
46 public static String toPresentableUrl(String url) {
47 String path = VirtualFileManager.extractPath(url);
48 if (path.endsWith(JarFileSystem.JAR_SEPARATOR)) {
49 path = path.substring(0, path.length() - JarFileSystem.JAR_SEPARATOR.length());
51 return path.replace('/', File.separatorChar);
54 public boolean isValid() {
55 return getFile() != null;
58 private void refreshFile() {
59 if (myFile != null && myFile.isValid()) return;
60 VirtualFile virtualFile = VirtualFileManager.getInstance().findFileByUrl(myUrl);
61 myFile = virtualFile != null && virtualFile.isValid() ? virtualFile : null;