001    /*
002     * Copyright 2010-2013 JetBrains s.r.o.
003     *
004     * Licensed under the Apache License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     * http://www.apache.org/licenses/LICENSE-2.0
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    
017    package org.jetbrains.jet.di;
018    
019    import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
020    import org.jetbrains.jet.lang.resolve.TopDownAnalysisContext;
021    import org.jetbrains.jet.lang.resolve.BodyResolver;
022    import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer;
023    import org.jetbrains.jet.lang.resolve.DeclarationsChecker;
024    import org.jetbrains.jet.lang.resolve.DescriptorResolver;
025    import org.jetbrains.jet.lang.resolve.calls.NeedSyntheticCallResolverExtension;
026    import com.intellij.openapi.project.Project;
027    import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
028    import org.jetbrains.jet.lang.resolve.BindingTrace;
029    import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
030    import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolverDummyImpl;
031    import org.jetbrains.jet.lang.resolve.NamespaceFactoryImpl;
032    import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
033    import org.jetbrains.jet.lang.resolve.DeclarationResolver;
034    import org.jetbrains.jet.lang.resolve.AnnotationResolver;
035    import org.jetbrains.jet.lang.resolve.calls.CallResolver;
036    import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver;
037    import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
038    import org.jetbrains.jet.lang.resolve.calls.CallExpressionResolver;
039    import org.jetbrains.jet.lang.resolve.TypeResolver;
040    import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver;
041    import org.jetbrains.jet.lang.resolve.calls.CandidateResolver;
042    import org.jetbrains.jet.lang.resolve.ImportsResolver;
043    import org.jetbrains.jet.lang.psi.JetImportsFactory;
044    import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
045    import org.jetbrains.jet.lang.resolve.OverloadResolver;
046    import org.jetbrains.jet.lang.resolve.OverrideResolver;
047    import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
048    import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
049    import org.jetbrains.annotations.NotNull;
050    import javax.annotation.PreDestroy;
051    
052    /* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */
053    public class InjectorForTopDownAnalyzerForJs {
054        
055        private final TopDownAnalyzer topDownAnalyzer;
056        private final TopDownAnalysisContext topDownAnalysisContext;
057        private final BodyResolver bodyResolver;
058        private final ControlFlowAnalyzer controlFlowAnalyzer;
059        private final DeclarationsChecker declarationsChecker;
060        private final DescriptorResolver descriptorResolver;
061        private final NeedSyntheticCallResolverExtension needSyntheticCallResolverExtension;
062        private final Project project;
063        private final TopDownAnalysisParameters topDownAnalysisParameters;
064        private final BindingTrace bindingTrace;
065        private final ModuleDescriptorImpl moduleDescriptor;
066        private final DependencyClassByQualifiedNameResolverDummyImpl dependencyClassByQualifiedNameResolverDummy;
067        private final NamespaceFactoryImpl namespaceFactory;
068        private final PlatformToKotlinClassMap platformToKotlinClassMap;
069        private final DeclarationResolver declarationResolver;
070        private final AnnotationResolver annotationResolver;
071        private final CallResolver callResolver;
072        private final ArgumentTypeResolver argumentTypeResolver;
073        private final ExpressionTypingServices expressionTypingServices;
074        private final CallExpressionResolver callExpressionResolver;
075        private final TypeResolver typeResolver;
076        private final QualifiedExpressionResolver qualifiedExpressionResolver;
077        private final CandidateResolver candidateResolver;
078        private final ImportsResolver importsResolver;
079        private final JetImportsFactory jetImportsFactory;
080        private final ScriptHeaderResolver scriptHeaderResolver;
081        private final OverloadResolver overloadResolver;
082        private final OverrideResolver overrideResolver;
083        private final TypeHierarchyResolver typeHierarchyResolver;
084        private final ScriptBodyResolver scriptBodyResolver;
085        
086        public InjectorForTopDownAnalyzerForJs(
087            @NotNull Project project,
088            @NotNull TopDownAnalysisParameters topDownAnalysisParameters,
089            @NotNull BindingTrace bindingTrace,
090            @NotNull ModuleDescriptorImpl moduleDescriptor
091        ) {
092            this.topDownAnalyzer = new TopDownAnalyzer();
093            this.topDownAnalysisContext = new TopDownAnalysisContext();
094            this.bodyResolver = new BodyResolver();
095            this.controlFlowAnalyzer = new ControlFlowAnalyzer();
096            this.declarationsChecker = new DeclarationsChecker();
097            this.descriptorResolver = new DescriptorResolver();
098            this.needSyntheticCallResolverExtension = new NeedSyntheticCallResolverExtension();
099            this.project = project;
100            this.topDownAnalysisParameters = topDownAnalysisParameters;
101            this.bindingTrace = bindingTrace;
102            this.moduleDescriptor = moduleDescriptor;
103            this.dependencyClassByQualifiedNameResolverDummy = new DependencyClassByQualifiedNameResolverDummyImpl();
104            this.namespaceFactory = new NamespaceFactoryImpl();
105            this.platformToKotlinClassMap = org.jetbrains.jet.lang.PlatformToKotlinClassMap.EMPTY;
106            this.declarationResolver = new DeclarationResolver();
107            this.annotationResolver = new AnnotationResolver();
108            this.callResolver = new CallResolver();
109            this.argumentTypeResolver = new ArgumentTypeResolver();
110            this.expressionTypingServices = new ExpressionTypingServices();
111            this.callExpressionResolver = new CallExpressionResolver();
112            this.typeResolver = new TypeResolver();
113            this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
114            this.candidateResolver = new CandidateResolver();
115            this.importsResolver = new ImportsResolver();
116            this.jetImportsFactory = new JetImportsFactory();
117            this.scriptHeaderResolver = new ScriptHeaderResolver();
118            this.overloadResolver = new OverloadResolver();
119            this.overrideResolver = new OverrideResolver();
120            this.typeHierarchyResolver = new TypeHierarchyResolver();
121            this.scriptBodyResolver = new ScriptBodyResolver();
122    
123            this.topDownAnalyzer.setBodyResolver(bodyResolver);
124            this.topDownAnalyzer.setContext(topDownAnalysisContext);
125            this.topDownAnalyzer.setDeclarationResolver(declarationResolver);
126            this.topDownAnalyzer.setModuleDescriptor(moduleDescriptor);
127            this.topDownAnalyzer.setNamespaceFactory(namespaceFactory);
128            this.topDownAnalyzer.setOverloadResolver(overloadResolver);
129            this.topDownAnalyzer.setOverrideResolver(overrideResolver);
130            this.topDownAnalyzer.setTopDownAnalysisParameters(topDownAnalysisParameters);
131            this.topDownAnalyzer.setTrace(bindingTrace);
132            this.topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
133    
134            this.topDownAnalysisContext.setTopDownAnalysisParameters(topDownAnalysisParameters);
135    
136            this.bodyResolver.setAnnotationResolver(annotationResolver);
137            this.bodyResolver.setCallResolver(callResolver);
138            this.bodyResolver.setContext(topDownAnalysisContext);
139            this.bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
140            this.bodyResolver.setDeclarationsChecker(declarationsChecker);
141            this.bodyResolver.setDescriptorResolver(descriptorResolver);
142            this.bodyResolver.setExpressionTypingServices(expressionTypingServices);
143            this.bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver);
144            this.bodyResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
145            this.bodyResolver.setTrace(bindingTrace);
146    
147            this.controlFlowAnalyzer.setTopDownAnalysisParameters(topDownAnalysisParameters);
148            this.controlFlowAnalyzer.setTrace(bindingTrace);
149    
150            this.declarationsChecker.setTrace(bindingTrace);
151    
152            this.descriptorResolver.setAnnotationResolver(annotationResolver);
153            this.descriptorResolver.setExpressionTypingServices(expressionTypingServices);
154            this.descriptorResolver.setTypeResolver(typeResolver);
155    
156            namespaceFactory.setModuleDescriptor(moduleDescriptor);
157            namespaceFactory.setTrace(bindingTrace);
158    
159            declarationResolver.setAnnotationResolver(annotationResolver);
160            declarationResolver.setContext(topDownAnalysisContext);
161            declarationResolver.setDescriptorResolver(descriptorResolver);
162            declarationResolver.setImportsResolver(importsResolver);
163            declarationResolver.setScriptHeaderResolver(scriptHeaderResolver);
164            declarationResolver.setTrace(bindingTrace);
165    
166            annotationResolver.setCallResolver(callResolver);
167            annotationResolver.setExpressionTypingServices(expressionTypingServices);
168    
169            callResolver.setArgumentTypeResolver(argumentTypeResolver);
170            callResolver.setCandidateResolver(candidateResolver);
171            callResolver.setExpressionTypingServices(expressionTypingServices);
172            callResolver.setExtension(needSyntheticCallResolverExtension);
173            callResolver.setTypeResolver(typeResolver);
174    
175            argumentTypeResolver.setExpressionTypingServices(expressionTypingServices);
176            argumentTypeResolver.setTypeResolver(typeResolver);
177    
178            expressionTypingServices.setCallExpressionResolver(callExpressionResolver);
179            expressionTypingServices.setCallResolver(callResolver);
180            expressionTypingServices.setDescriptorResolver(descriptorResolver);
181            expressionTypingServices.setPlatformToKotlinClassMap(platformToKotlinClassMap);
182            expressionTypingServices.setProject(project);
183            expressionTypingServices.setTypeResolver(typeResolver);
184    
185            callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
186    
187            typeResolver.setAnnotationResolver(annotationResolver);
188            typeResolver.setDescriptorResolver(descriptorResolver);
189            typeResolver.setModuleDescriptor(moduleDescriptor);
190            typeResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
191    
192            candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
193    
194            importsResolver.setContext(topDownAnalysisContext);
195            importsResolver.setImportsFactory(jetImportsFactory);
196            importsResolver.setModuleDescriptor(moduleDescriptor);
197            importsResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
198            importsResolver.setTrace(bindingTrace);
199    
200            jetImportsFactory.setProject(project);
201    
202            scriptHeaderResolver.setContext(topDownAnalysisContext);
203            scriptHeaderResolver.setDependencyClassByQualifiedNameResolver(dependencyClassByQualifiedNameResolverDummy);
204            scriptHeaderResolver.setNamespaceFactory(namespaceFactory);
205            scriptHeaderResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
206            scriptHeaderResolver.setTrace(bindingTrace);
207    
208            overloadResolver.setContext(topDownAnalysisContext);
209            overloadResolver.setTrace(bindingTrace);
210    
211            overrideResolver.setContext(topDownAnalysisContext);
212            overrideResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
213            overrideResolver.setTrace(bindingTrace);
214    
215            typeHierarchyResolver.setContext(topDownAnalysisContext);
216            typeHierarchyResolver.setDescriptorResolver(descriptorResolver);
217            typeHierarchyResolver.setImportsResolver(importsResolver);
218            typeHierarchyResolver.setNamespaceFactory(namespaceFactory);
219            typeHierarchyResolver.setScriptHeaderResolver(scriptHeaderResolver);
220            typeHierarchyResolver.setTrace(bindingTrace);
221    
222            scriptBodyResolver.setContext(topDownAnalysisContext);
223            scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
224            scriptBodyResolver.setTrace(bindingTrace);
225    
226        }
227        
228        @PreDestroy
229        public void destroy() {
230        }
231        
232        public TopDownAnalyzer getTopDownAnalyzer() {
233            return this.topDownAnalyzer;
234        }
235        
236        public TopDownAnalysisContext getTopDownAnalysisContext() {
237            return this.topDownAnalysisContext;
238        }
239        
240        public BodyResolver getBodyResolver() {
241            return this.bodyResolver;
242        }
243        
244        public ControlFlowAnalyzer getControlFlowAnalyzer() {
245            return this.controlFlowAnalyzer;
246        }
247        
248        public DeclarationsChecker getDeclarationsChecker() {
249            return this.declarationsChecker;
250        }
251        
252        public DescriptorResolver getDescriptorResolver() {
253            return this.descriptorResolver;
254        }
255        
256        public Project getProject() {
257            return this.project;
258        }
259        
260        public TopDownAnalysisParameters getTopDownAnalysisParameters() {
261            return this.topDownAnalysisParameters;
262        }
263        
264        public BindingTrace getBindingTrace() {
265            return this.bindingTrace;
266        }
267        
268        public ModuleDescriptorImpl getModuleDescriptor() {
269            return this.moduleDescriptor;
270        }
271        
272    }