Minor, refactor JetFilesProvider

This commit is contained in:
Alexander Udalov
2013-07-23 20:13:19 +04:00
committed by Pavel V. Talanov
parent 155f3b3b96
commit 78bd6faffc
4 changed files with 14 additions and 21 deletions
@@ -36,7 +36,7 @@ import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.util.slicedmap.WritableSlice;
import java.util.List;
import java.util.Collection;
import static org.jetbrains.jet.lang.resolve.BindingContextUtils.descriptorToDeclaration;
@@ -193,7 +193,7 @@ public final class PsiCodegenPredictor {
}
@Nullable
public static JetFile getFileForNamespacePartName(@NotNull List<JetFile> allNamespaceFiles, @NotNull JvmClassName className) {
public static JetFile getFileForNamespacePartName(@NotNull Collection<JetFile> allNamespaceFiles, @NotNull JvmClassName className) {
for (JetFile file : allNamespaceFiles) {
String internalName = NamespaceCodegen.getNamespacePartInternalName(file);
JvmClassName jvmClassName = JvmClassName.byInternalName(internalName);
@@ -207,7 +207,7 @@ public final class PsiCodegenPredictor {
@Nullable
public static JetFile getFileForCodegenNamedClass(
@NotNull BindingContext context,
@NotNull List<JetFile> allNamespaceFiles,
@NotNull Collection<JetFile> allNamespaceFiles,
@NotNull final JvmClassName className
) {
final Ref<DeclarationDescriptor> resultingDescriptor = Ref.create();
@@ -17,6 +17,7 @@
package org.jetbrains.jet.lang.resolve.java;
import com.google.common.base.Predicate;
import com.google.common.collect.Collections2;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiFile;
@@ -28,19 +29,17 @@ import org.jetbrains.jet.lang.psi.JetPsiUtil;
import org.jetbrains.jet.lang.resolve.name.FqName;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
public abstract class JetFilesProvider {
public static JetFilesProvider getInstance(Project project) {
return ServiceManager.getService(project, JetFilesProvider.class);
}
public final Function<JetFile, List<JetFile>> allNamespaceFiles() {
return new Function<JetFile, List<JetFile>>() {
public final Function<JetFile, Collection<JetFile>> allNamespaceFiles() {
return new Function<JetFile, Collection<JetFile>>() {
@Override
public List<JetFile> fun(JetFile file) {
return new SameJetFilePredicate(file).filter(sampleToAllFilesInModule().fun(file));
public Collection<JetFile> fun(JetFile file) {
return Collections2.filter(sampleToAllFilesInModule().fun(file), new SameJetFilePredicate(file));
}
};
}
@@ -60,14 +59,5 @@ public abstract class JetFilesProvider {
public boolean apply(PsiFile psiFile) {
return JetPsiUtil.getFQName((JetFile) psiFile).equals(name);
}
public List<JetFile> filter(Collection<JetFile> allFiles) {
LinkedList<JetFile> files = new LinkedList<JetFile>();
for (JetFile aFile : allFiles) {
if(apply(aFile))
files.add(aFile);
}
return files;
}
}
}
@@ -51,6 +51,7 @@ import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache;
import org.jetbrains.jet.plugin.util.DebuggerUtils;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.WeakHashMap;
@@ -187,7 +188,7 @@ public class JetPositionManager implements PositionManager {
AnalyzeExhaust analyzeExhaust = AnalyzerFacadeWithCache.analyzeFileWithCache(file);
analyzeExhaust.throwIfError();
List<JetFile> namespaceFiles = JetFilesProvider.getInstance(file.getProject()).allNamespaceFiles().fun(file);
Collection<JetFile> namespaceFiles = JetFilesProvider.getInstance(file.getProject()).allNamespaceFiles().fun(file);
DelegatingBindingTrace bindingTrace = new DelegatingBindingTrace(analyzeExhaust.getBindingContext(), "trace created in JetPositionManager");
JetTypeMapper typeMapper = new JetTypeMapper(bindingTrace, true, ClassBuilderMode.FULL);
@@ -31,9 +31,11 @@ import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache;
import java.util.Collection;
import java.util.List;
public class DebuggerUtils {
private DebuggerUtils() {
}
@Nullable
public static JetFile findSourceFileForClass(
@NotNull GlobalSearchScope searchScope,
@@ -62,7 +64,7 @@ public class DebuggerUtils {
return anyFile;
}
List<JetFile> allNamespaceFiles = filesProvider.allNamespaceFiles().fun(anyFile);
Collection<JetFile> allNamespaceFiles = filesProvider.allNamespaceFiles().fun(anyFile);
JetFile file = PsiCodegenPredictor.getFileForNamespacePartName(allNamespaceFiles, className);
if (file != null) {
return file;