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.CallResolverExtensionProvider;
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.DelegatedPropertyResolver;
049    import org.jetbrains.jet.lang.resolve.FunctionAnalyzerExtension;
050    import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
051    import org.jetbrains.annotations.NotNull;
052    import javax.annotation.PreDestroy;
053    
054    /* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */
055    public class InjectorForTopDownAnalyzerForJs {
056        
057        private final TopDownAnalyzer topDownAnalyzer;
058        private final TopDownAnalysisContext topDownAnalysisContext;
059        private final BodyResolver bodyResolver;
060        private final ControlFlowAnalyzer controlFlowAnalyzer;
061        private final DeclarationsChecker declarationsChecker;
062        private final DescriptorResolver descriptorResolver;
063        private final CallResolverExtensionProvider callResolverExtensionProvider;
064        private final Project project;
065        private final TopDownAnalysisParameters topDownAnalysisParameters;
066        private final BindingTrace bindingTrace;
067        private final ModuleDescriptorImpl moduleDescriptor;
068        private final DependencyClassByQualifiedNameResolverDummyImpl dependencyClassByQualifiedNameResolverDummy;
069        private final NamespaceFactoryImpl namespaceFactory;
070        private final PlatformToKotlinClassMap platformToKotlinClassMap;
071        private final DeclarationResolver declarationResolver;
072        private final AnnotationResolver annotationResolver;
073        private final CallResolver callResolver;
074        private final ArgumentTypeResolver argumentTypeResolver;
075        private final ExpressionTypingServices expressionTypingServices;
076        private final CallExpressionResolver callExpressionResolver;
077        private final TypeResolver typeResolver;
078        private final QualifiedExpressionResolver qualifiedExpressionResolver;
079        private final CandidateResolver candidateResolver;
080        private final ImportsResolver importsResolver;
081        private final JetImportsFactory jetImportsFactory;
082        private final ScriptHeaderResolver scriptHeaderResolver;
083        private final OverloadResolver overloadResolver;
084        private final OverrideResolver overrideResolver;
085        private final TypeHierarchyResolver typeHierarchyResolver;
086        private final DelegatedPropertyResolver delegatedPropertyResolver;
087        private final FunctionAnalyzerExtension functionAnalyzerExtension;
088        private final ScriptBodyResolver scriptBodyResolver;
089        
090        public InjectorForTopDownAnalyzerForJs(
091            @NotNull Project project,
092            @NotNull TopDownAnalysisParameters topDownAnalysisParameters,
093            @NotNull BindingTrace bindingTrace,
094            @NotNull ModuleDescriptorImpl moduleDescriptor
095        ) {
096            this.topDownAnalyzer = new TopDownAnalyzer();
097            this.topDownAnalysisContext = new TopDownAnalysisContext();
098            this.bodyResolver = new BodyResolver();
099            this.controlFlowAnalyzer = new ControlFlowAnalyzer();
100            this.declarationsChecker = new DeclarationsChecker();
101            this.descriptorResolver = new DescriptorResolver();
102            this.callResolverExtensionProvider = new CallResolverExtensionProvider();
103            this.project = project;
104            this.topDownAnalysisParameters = topDownAnalysisParameters;
105            this.bindingTrace = bindingTrace;
106            this.moduleDescriptor = moduleDescriptor;
107            this.dependencyClassByQualifiedNameResolverDummy = new DependencyClassByQualifiedNameResolverDummyImpl();
108            this.namespaceFactory = new NamespaceFactoryImpl();
109            this.platformToKotlinClassMap = org.jetbrains.jet.lang.PlatformToKotlinClassMap.EMPTY;
110            this.declarationResolver = new DeclarationResolver();
111            this.annotationResolver = new AnnotationResolver();
112            this.callResolver = new CallResolver();
113            this.argumentTypeResolver = new ArgumentTypeResolver();
114            this.expressionTypingServices = new ExpressionTypingServices();
115            this.callExpressionResolver = new CallExpressionResolver();
116            this.typeResolver = new TypeResolver();
117            this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
118            this.candidateResolver = new CandidateResolver();
119            this.importsResolver = new ImportsResolver();
120            this.jetImportsFactory = new JetImportsFactory();
121            this.scriptHeaderResolver = new ScriptHeaderResolver();
122            this.overloadResolver = new OverloadResolver();
123            this.overrideResolver = new OverrideResolver();
124            this.typeHierarchyResolver = new TypeHierarchyResolver();
125            this.delegatedPropertyResolver = new DelegatedPropertyResolver();
126            this.functionAnalyzerExtension = new FunctionAnalyzerExtension();
127            this.scriptBodyResolver = new ScriptBodyResolver();
128    
129            this.topDownAnalyzer.setBodyResolver(bodyResolver);
130            this.topDownAnalyzer.setContext(topDownAnalysisContext);
131            this.topDownAnalyzer.setDeclarationResolver(declarationResolver);
132            this.topDownAnalyzer.setModuleDescriptor(moduleDescriptor);
133            this.topDownAnalyzer.setNamespaceFactory(namespaceFactory);
134            this.topDownAnalyzer.setOverloadResolver(overloadResolver);
135            this.topDownAnalyzer.setOverrideResolver(overrideResolver);
136            this.topDownAnalyzer.setTopDownAnalysisParameters(topDownAnalysisParameters);
137            this.topDownAnalyzer.setTrace(bindingTrace);
138            this.topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
139    
140            this.topDownAnalysisContext.setTopDownAnalysisParameters(topDownAnalysisParameters);
141    
142            this.bodyResolver.setAnnotationResolver(annotationResolver);
143            this.bodyResolver.setCallResolver(callResolver);
144            this.bodyResolver.setContext(topDownAnalysisContext);
145            this.bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
146            this.bodyResolver.setDeclarationsChecker(declarationsChecker);
147            this.bodyResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
148            this.bodyResolver.setExpressionTypingServices(expressionTypingServices);
149            this.bodyResolver.setFunctionAnalyzerExtension(functionAnalyzerExtension);
150            this.bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver);
151            this.bodyResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
152            this.bodyResolver.setTrace(bindingTrace);
153    
154            this.controlFlowAnalyzer.setTopDownAnalysisParameters(topDownAnalysisParameters);
155            this.controlFlowAnalyzer.setTrace(bindingTrace);
156    
157            this.declarationsChecker.setTrace(bindingTrace);
158    
159            this.descriptorResolver.setAnnotationResolver(annotationResolver);
160            this.descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
161            this.descriptorResolver.setExpressionTypingServices(expressionTypingServices);
162            this.descriptorResolver.setTypeResolver(typeResolver);
163    
164            namespaceFactory.setModuleDescriptor(moduleDescriptor);
165            namespaceFactory.setTrace(bindingTrace);
166    
167            declarationResolver.setAnnotationResolver(annotationResolver);
168            declarationResolver.setContext(topDownAnalysisContext);
169            declarationResolver.setDescriptorResolver(descriptorResolver);
170            declarationResolver.setImportsResolver(importsResolver);
171            declarationResolver.setScriptHeaderResolver(scriptHeaderResolver);
172            declarationResolver.setTrace(bindingTrace);
173    
174            annotationResolver.setCallResolver(callResolver);
175            annotationResolver.setExpressionTypingServices(expressionTypingServices);
176    
177            callResolver.setArgumentTypeResolver(argumentTypeResolver);
178            callResolver.setCandidateResolver(candidateResolver);
179            callResolver.setExpressionTypingServices(expressionTypingServices);
180            callResolver.setTypeResolver(typeResolver);
181    
182            argumentTypeResolver.setExpressionTypingServices(expressionTypingServices);
183            argumentTypeResolver.setTypeResolver(typeResolver);
184    
185            expressionTypingServices.setAnnotationResolver(annotationResolver);
186            expressionTypingServices.setCallExpressionResolver(callExpressionResolver);
187            expressionTypingServices.setCallResolver(callResolver);
188            expressionTypingServices.setDescriptorResolver(descriptorResolver);
189            expressionTypingServices.setExtensionProvider(callResolverExtensionProvider);
190            expressionTypingServices.setPlatformToKotlinClassMap(platformToKotlinClassMap);
191            expressionTypingServices.setProject(project);
192            expressionTypingServices.setTypeResolver(typeResolver);
193    
194            callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
195    
196            typeResolver.setAnnotationResolver(annotationResolver);
197            typeResolver.setModuleDescriptor(moduleDescriptor);
198            typeResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
199    
200            candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
201    
202            importsResolver.setContext(topDownAnalysisContext);
203            importsResolver.setImportsFactory(jetImportsFactory);
204            importsResolver.setModuleDescriptor(moduleDescriptor);
205            importsResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
206            importsResolver.setTrace(bindingTrace);
207    
208            jetImportsFactory.setProject(project);
209    
210            scriptHeaderResolver.setContext(topDownAnalysisContext);
211            scriptHeaderResolver.setDependencyClassByQualifiedNameResolver(dependencyClassByQualifiedNameResolverDummy);
212            scriptHeaderResolver.setNamespaceFactory(namespaceFactory);
213            scriptHeaderResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
214            scriptHeaderResolver.setTrace(bindingTrace);
215    
216            overloadResolver.setContext(topDownAnalysisContext);
217            overloadResolver.setTrace(bindingTrace);
218    
219            overrideResolver.setContext(topDownAnalysisContext);
220            overrideResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
221            overrideResolver.setTrace(bindingTrace);
222    
223            typeHierarchyResolver.setContext(topDownAnalysisContext);
224            typeHierarchyResolver.setDescriptorResolver(descriptorResolver);
225            typeHierarchyResolver.setImportsResolver(importsResolver);
226            typeHierarchyResolver.setNamespaceFactory(namespaceFactory);
227            typeHierarchyResolver.setScriptHeaderResolver(scriptHeaderResolver);
228            typeHierarchyResolver.setTrace(bindingTrace);
229    
230            delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
231    
232            functionAnalyzerExtension.setTrace(bindingTrace);
233    
234            scriptBodyResolver.setContext(topDownAnalysisContext);
235            scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
236            scriptBodyResolver.setTrace(bindingTrace);
237    
238        }
239        
240        @PreDestroy
241        public void destroy() {
242        }
243        
244        public TopDownAnalyzer getTopDownAnalyzer() {
245            return this.topDownAnalyzer;
246        }
247        
248        public TopDownAnalysisContext getTopDownAnalysisContext() {
249            return this.topDownAnalysisContext;
250        }
251        
252        public BodyResolver getBodyResolver() {
253            return this.bodyResolver;
254        }
255        
256        public ControlFlowAnalyzer getControlFlowAnalyzer() {
257            return this.controlFlowAnalyzer;
258        }
259        
260        public DeclarationsChecker getDeclarationsChecker() {
261            return this.declarationsChecker;
262        }
263        
264        public DescriptorResolver getDescriptorResolver() {
265            return this.descriptorResolver;
266        }
267        
268        public Project getProject() {
269            return this.project;
270        }
271        
272        public TopDownAnalysisParameters getTopDownAnalysisParameters() {
273            return this.topDownAnalysisParameters;
274        }
275        
276        public BindingTrace getBindingTrace() {
277            return this.bindingTrace;
278        }
279        
280        public ModuleDescriptorImpl getModuleDescriptor() {
281            return this.moduleDescriptor;
282        }
283        
284    }