import com.intellij.openapi.util.io.FileAttributes;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileSystem;
+import com.intellij.util.SmartList;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
-import java.util.ArrayList;
import java.util.List;
/**
private final String myName;
private final FileAttributes myEntry;
private final VirtualFile myParent;
- private final List<VirtualFile> myChildren = new ArrayList<VirtualFile>();
+ private List<VirtualFile> myChildren = null;
public CoreJarVirtualFile(@NotNull CoreJarHandler handler, @NotNull String name, @NotNull FileAttributes entry, @Nullable CoreJarVirtualFile parent) {
myHandler = handler;
myParent = parent;
if (parent != null) {
+ if (parent.myChildren == null) {
+ parent.myChildren = new SmartList<VirtualFile>();
+ }
parent.myChildren.add(this);
}
}
@Override
public VirtualFile[] getChildren() {
+ if (myChildren == null) {
+ return VirtualFile.EMPTY_ARRAY;
+ }
return myChildren.toArray(new VirtualFile[myChildren.size()]);
}