add NamespaceFactory dependency to JavaNamespaceDescriptor

(JavaNamespaceDescriptor will be killed soon, NamespaceFactory will be used to create nss)
This commit is contained in:
Stepan Koltsov
2012-03-22 03:47:19 +04:00
parent 97549f54b3
commit 4da926f311
4 changed files with 27 additions and 5 deletions
@@ -20,8 +20,11 @@ package org.jetbrains.jet.di;
import org.jetbrains.jet.lang.resolve.java.JavaSemanticServices; import org.jetbrains.jet.lang.resolve.java.JavaSemanticServices;
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver; import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
import org.jetbrains.jet.lang.resolve.BindingTrace; import org.jetbrains.jet.lang.resolve.BindingTrace;
import org.jetbrains.jet.lang.resolve.java.JavaBridgeConfiguration;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
import com.intellij.openapi.project.Project; import com.intellij.openapi.project.Project;
import org.jetbrains.jet.lang.resolve.java.JavaTypeTransformer; import org.jetbrains.jet.lang.resolve.java.JavaTypeTransformer;
import org.jetbrains.jet.lang.resolve.NamespaceFactoryImpl;
import com.intellij.openapi.project.Project; import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@@ -39,19 +42,30 @@ public class InjectorForJavaSemanticServices {
this.javaSemanticServices = new JavaSemanticServices(); this.javaSemanticServices = new JavaSemanticServices();
this.javaDescriptorResolver = new JavaDescriptorResolver(); this.javaDescriptorResolver = new JavaDescriptorResolver();
this.bindingTrace = new org.jetbrains.jet.lang.resolve.BindingTraceContext(); this.bindingTrace = new org.jetbrains.jet.lang.resolve.BindingTraceContext();
JavaBridgeConfiguration javaBridgeConfiguration = new JavaBridgeConfiguration();
ModuleDescriptor moduleDescriptor = new org.jetbrains.jet.lang.descriptors.ModuleDescriptor("<dummy>");
this.project = project; this.project = project;
JavaTypeTransformer javaTypeTransformer = new JavaTypeTransformer(); JavaTypeTransformer javaTypeTransformer = new JavaTypeTransformer();
NamespaceFactoryImpl namespaceFactoryImpl = new NamespaceFactoryImpl();
this.javaSemanticServices.setDescriptorResolver(javaDescriptorResolver); this.javaSemanticServices.setDescriptorResolver(javaDescriptorResolver);
this.javaSemanticServices.setTrace(bindingTrace); this.javaSemanticServices.setTrace(bindingTrace);
this.javaSemanticServices.setTypeTransformer(javaTypeTransformer); this.javaSemanticServices.setTypeTransformer(javaTypeTransformer);
this.javaDescriptorResolver.setNamespaceFactory(namespaceFactoryImpl);
this.javaDescriptorResolver.setProject(project); this.javaDescriptorResolver.setProject(project);
this.javaDescriptorResolver.setSemanticServices(javaSemanticServices); this.javaDescriptorResolver.setSemanticServices(javaSemanticServices);
javaBridgeConfiguration.setJavaSemanticServices(javaSemanticServices);
javaBridgeConfiguration.setProject(project);
javaTypeTransformer.setJavaSemanticServices(javaSemanticServices); javaTypeTransformer.setJavaSemanticServices(javaSemanticServices);
javaTypeTransformer.setResolver(javaDescriptorResolver); javaTypeTransformer.setResolver(javaDescriptorResolver);
namespaceFactoryImpl.setConfiguration(javaBridgeConfiguration);
namespaceFactoryImpl.setModuleDescriptor(moduleDescriptor);
namespaceFactoryImpl.setTrace(bindingTrace);
} }
public JavaSemanticServices getJavaSemanticServices() { public JavaSemanticServices getJavaSemanticServices() {
@@ -187,6 +187,7 @@ public class InjectorForTopDownAnalyzerForJvm {
javaSemanticServices.setTrace(observableBindingTrace); javaSemanticServices.setTrace(observableBindingTrace);
javaSemanticServices.setTypeTransformer(javaTypeTransformer); javaSemanticServices.setTypeTransformer(javaTypeTransformer);
javaDescriptorResolver.setNamespaceFactory(namespaceFactoryImpl);
javaDescriptorResolver.setProject(project); javaDescriptorResolver.setProject(project);
javaDescriptorResolver.setSemanticServices(javaSemanticServices); javaDescriptorResolver.setSemanticServices(javaSemanticServices);
@@ -32,10 +32,7 @@ import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
import org.jetbrains.jet.lang.psi.JetPsiUtil; import org.jetbrains.jet.lang.psi.JetPsiUtil;
import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.*;
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
import org.jetbrains.jet.lang.resolve.FqName;
import org.jetbrains.jet.lang.resolve.OverrideResolver;
import org.jetbrains.jet.lang.resolve.constants.*; import org.jetbrains.jet.lang.resolve.constants.*;
import org.jetbrains.jet.lang.resolve.java.alt.AltClassFinder; import org.jetbrains.jet.lang.resolve.java.alt.AltClassFinder;
import org.jetbrains.jet.lang.resolve.java.kt.JetClassAnnotation; import org.jetbrains.jet.lang.resolve.java.kt.JetClassAnnotation;
@@ -199,6 +196,7 @@ public class JavaDescriptorResolver {
protected GlobalSearchScope javaSearchScope ; protected GlobalSearchScope javaSearchScope ;
protected JavaSemanticServices semanticServices; protected JavaSemanticServices semanticServices;
private AltClassFinder altClassFinder; private AltClassFinder altClassFinder;
private NamespaceFactory namespaceFactory;
@Inject @Inject
public void setProject(Project project) { public void setProject(Project project) {
@@ -213,6 +211,11 @@ public class JavaDescriptorResolver {
this.javaFacade = JavaPsiFacade.getInstance(project); this.javaFacade = JavaPsiFacade.getInstance(project);
} }
@Inject
public void setNamespaceFactory(NamespaceFactoryImpl namespaceFactory) {
this.namespaceFactory = namespaceFactory;
}
@Inject @Inject
public void setSemanticServices(JavaSemanticServices semanticServices) { public void setSemanticServices(JavaSemanticServices semanticServices) {
this.semanticServices = semanticServices; this.semanticServices = semanticServices;
@@ -110,7 +110,11 @@ public class AllInjectorsGenerator {
// Fields // Fields
generator.addPublicField(JavaSemanticServices.class); generator.addPublicField(JavaSemanticServices.class);
generator.addPublicField(JavaDescriptorResolver.class); generator.addPublicField(JavaDescriptorResolver.class);
generator.addField(true, BindingTrace.class, null, new GivenExpression("new org.jetbrains.jet.lang.resolve.BindingTraceContext()")); generator.addField(true, BindingTrace.class, null,
new GivenExpression("new org.jetbrains.jet.lang.resolve.BindingTraceContext()"));
generator.addField(JavaBridgeConfiguration.class);
generator.addField(false, ModuleDescriptor.class, null,
new GivenExpression("new org.jetbrains.jet.lang.descriptors.ModuleDescriptor(\"<dummy>\")"));
// Parameters // Parameters
generator.addPublicParameter(Project.class); generator.addPublicParameter(Project.class);