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
;
10 public class LightFilePointer
{
12 private VirtualFile myFile
;
14 public LightFilePointer(String url
) {
18 public VirtualFile
getFile() {
24 public String
getUrl() {
29 public String
getFileName() {
31 return myFile
.getName();
34 int index
= myUrl
.lastIndexOf('/');
35 return index
>= 0 ? myUrl
.substring(index
+ 1) : myUrl
;
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;