4 package com
.intellij
.psi
;
6 import com
.intellij
.openapi
.fileTypes
.FileType
;
7 import com
.intellij
.openapi
.project
.Project
;
8 import com
.intellij
.openapi
.roots
.ProjectRootManager
;
9 import com
.intellij
.openapi
.vfs
.VirtualFile
;
10 import com
.intellij
.psi
.impl
.PsiManagerImpl
;
11 import com
.intellij
.psi
.impl
.compiled
.ClsFileImpl
;
12 import com
.intellij
.testFramework
.LightVirtualFile
;
13 import org
.jetbrains
.annotations
.NotNull
;
15 public class ClassFileViewProvider
extends SingleRootFileViewProvider
{
16 public ClassFileViewProvider(@NotNull final PsiManager manager
, @NotNull final VirtualFile file
) {
20 public ClassFileViewProvider(@NotNull final PsiManager manager
, @NotNull final VirtualFile virtualFile
, final boolean physical
) {
21 super(manager
, virtualFile
, physical
);
25 protected PsiFile
creatFile(final Project project
, final VirtualFile vFile
, final FileType fileType
) {
26 if (ProjectRootManager
.getInstance(project
).getFileIndex().isInLibraryClasses(vFile
)) {
27 String name
= vFile
.getName();
29 // skip inners & anonymous
30 int dotIndex
= name
.lastIndexOf('.');
31 if (dotIndex
< 0) dotIndex
= name
.length();
32 int index
= name
.lastIndexOf('$', dotIndex
);
33 if (index
>= 0) return null;
35 return new ClsFileImpl((PsiManagerImpl
)PsiManager
.getInstance(project
), this);
41 public SingleRootFileViewProvider
createCopy(final LightVirtualFile copy
) {
42 return new ClassFileViewProvider(getManager(), copy
, false);