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 InjectorForTopDownAnalyzerBasic {
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 InjectorForTopDownAnalyzerBasic(
087            @NotNull Project project,
088            @NotNull TopDownAnalysisParameters topDownAnalysisParameters,
089            @NotNull BindingTrace bindingTrace,
090            @NotNull ModuleDescriptorImpl moduleDescriptor,
091            @NotNull PlatformToKotlinClassMap platformToKotlinClassMap
092        ) {
093            this.topDownAnalyzer = new TopDownAnalyzer();
094            this.topDownAnalysisContext = new TopDownAnalysisContext();
095            this.bodyResolver = new BodyResolver();
096            this.controlFlowAnalyzer = new ControlFlowAnalyzer();
097            this.declarationsChecker = new DeclarationsChecker();
098            this.descriptorResolver = new DescriptorResolver();
099            this.needSyntheticCallResolverExtension = new NeedSyntheticCallResolverExtension();
100            this.project = project;
101            this.topDownAnalysisParameters = topDownAnalysisParameters;
102            this.bindingTrace = bindingTrace;
103            this.moduleDescriptor = moduleDescriptor;
104            this.dependencyClassByQualifiedNameResolverDummy = new DependencyClassByQualifiedNameResolverDummyImpl();
105            this.namespaceFactory = new NamespaceFactoryImpl();
106            this.platformToKotlinClassMap = platformToKotlinClassMap;
107            this.declarationResolver = new DeclarationResolver();
108            this.annotationResolver = new AnnotationResolver();
109            this.callResolver = new CallResolver();
110            this.argumentTypeResolver = new ArgumentTypeResolver();
111            this.expressionTypingServices = new ExpressionTypingServices();
112            this.callExpressionResolver = new CallExpressionResolver();
113            this.typeResolver = new TypeResolver();
114            this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
115            this.candidateResolver = new CandidateResolver();
116            this.importsResolver = new ImportsResolver();
117            this.jetImportsFactory = new JetImportsFactory();
118            this.scriptHeaderResolver = new ScriptHeaderResolver();
119            this.overloadResolver = new OverloadResolver();
120            this.overrideResolver = new OverrideResolver();
121            this.typeHierarchyResolver = new TypeHierarchyResolver();
122            this.scriptBodyResolver = new ScriptBodyResolver();
123    
124            this.topDownAnalyzer.setBodyResolver(bodyResolver);
125            this.topDownAnalyzer.setContext(topDownAnalysisContext);
126            this.topDownAnalyzer.setDeclarationResolver(declarationResolver);
127            this.topDownAnalyzer.setModuleDescriptor(moduleDescriptor);
128            this.topDownAnalyzer.setNamespaceFactory(namespaceFactory);
129            this.topDownAnalyzer.setOverloadResolver(overloadResolver);
130            this.topDownAnalyzer.setOverrideResolver(overrideResolver);
131            this.topDownAnalyzer.setTopDownAnalysisParameters(topDownAnalysisParameters);
132            this.topDownAnalyzer.setTrace(bindingTrace);
133            this.topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
134    
135            this.topDownAnalysisContext.setTopDownAnalysisParameters(topDownAnalysisParameters);
136    
137            this.bodyResolver.setAnnotationResolver(annotationResolver);
138            this.bodyResolver.setCallResolver(callResolver);
139            this.bodyResolver.setContext(topDownAnalysisContext);
140            this.bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
141            this.bodyResolver.setDeclarationsChecker(declarationsChecker);
142            this.bodyResolver.setDescriptorResolver(descriptorResolver);
143            this.bodyResolver.setExpressionTypingServices(expressionTypingServices);
144            this.bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver);
145            this.bodyResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
146            this.bodyResolver.setTrace(bindingTrace);
147    
148            this.controlFlowAnalyzer.setTopDownAnalysisParameters(topDownAnalysisParameters);
149            this.controlFlowAnalyzer.setTrace(bindingTrace);
150    
151            this.declarationsChecker.setTrace(bindingTrace);
152    
153            this.descriptorResolver.setAnnotationResolver(annotationResolver);
154            this.descriptorResolver.setExpressionTypingServices(expressionTypingServices);
155            this.descriptorResolver.setTypeResolver(typeResolver);
156    
157            namespaceFactory.setModuleDescriptor(moduleDescriptor);
158            namespaceFactory.setTrace(bindingTrace);
159    
160            declarationResolver.setAnnotationResolver(annotationResolver);
161            declarationResolver.setContext(topDownAnalysisContext);
162            declarationResolver.setDescriptorResolver(descriptorResolver);
163            declarationResolver.setImportsResolver(importsResolver);
164            declarationResolver.setScriptHeaderResolver(scriptHeaderResolver);
165            declarationResolver.setTrace(bindingTrace);
166    
167            annotationResolver.setCallResolver(callResolver);
168            annotationResolver.setExpressionTypingServices(expressionTypingServices);
169    
170            callResolver.setArgumentTypeResolver(argumentTypeResolver);
171            callResolver.setCandidateResolver(candidateResolver);
172            callResolver.setExpressionTypingServices(expressionTypingServices);
173            callResolver.setExtension(needSyntheticCallResolverExtension);
174            callResolver.setTypeResolver(typeResolver);
175    
176            argumentTypeResolver.setExpressionTypingServices(expressionTypingServices);
177            argumentTypeResolver.setTypeResolver(typeResolver);
178    
179            expressionTypingServices.setCallExpressionResolver(callExpressionResolver);
180            expressionTypingServices.setCallResolver(callResolver);
181            expressionTypingServices.setDescriptorResolver(descriptorResolver);
182            expressionTypingServices.setPlatformToKotlinClassMap(platformToKotlinClassMap);
183            expressionTypingServices.setProject(project);
184            expressionTypingServices.setTypeResolver(typeResolver);
185    
186            callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
187    
188            typeResolver.setAnnotationResolver(annotationResolver);
189            typeResolver.setDescriptorResolver(descriptorResolver);
190            typeResolver.setModuleDescriptor(moduleDescriptor);
191            typeResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
192    
193            candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
194    
195            importsResolver.setContext(topDownAnalysisContext);
196            importsResolver.setImportsFactory(jetImportsFactory);
197            importsResolver.setModuleDescriptor(moduleDescriptor);
198            importsResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
199            importsResolver.setTrace(bindingTrace);
200    
201            jetImportsFactory.setProject(project);
202    
203            scriptHeaderResolver.setContext(topDownAnalysisContext);
204            scriptHeaderResolver.setDependencyClassByQualifiedNameResolver(dependencyClassByQualifiedNameResolverDummy);
205            scriptHeaderResolver.setNamespaceFactory(namespaceFactory);
206            scriptHeaderResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
207            scriptHeaderResolver.setTrace(bindingTrace);
208    
209            overloadResolver.setContext(topDownAnalysisContext);
210            overloadResolver.setTrace(bindingTrace);
211    
212            overrideResolver.setContext(topDownAnalysisContext);
213            overrideResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
214            overrideResolver.setTrace(bindingTrace);
215    
216            typeHierarchyResolver.setContext(topDownAnalysisContext);
217            typeHierarchyResolver.setDescriptorResolver(descriptorResolver);
218            typeHierarchyResolver.setImportsResolver(importsResolver);
219            typeHierarchyResolver.setNamespaceFactory(namespaceFactory);
220            typeHierarchyResolver.setScriptHeaderResolver(scriptHeaderResolver);
221            typeHierarchyResolver.setTrace(bindingTrace);
222    
223            scriptBodyResolver.setContext(topDownAnalysisContext);
224            scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
225            scriptBodyResolver.setTrace(bindingTrace);
226    
227        }
228        
229        @PreDestroy
230        public void destroy() {
231        }
232        
233        public TopDownAnalyzer getTopDownAnalyzer() {
234            return this.topDownAnalyzer;
235        }
236        
237        public TopDownAnalysisContext getTopDownAnalysisContext() {
238            return this.topDownAnalysisContext;
239        }
240        
241        public BodyResolver getBodyResolver() {
242            return this.bodyResolver;
243        }
244        
245        public ControlFlowAnalyzer getControlFlowAnalyzer() {
246            return this.controlFlowAnalyzer;
247        }
248        
249        public DeclarationsChecker getDeclarationsChecker() {
250            return this.declarationsChecker;
251        }
252        
253        public DescriptorResolver getDescriptorResolver() {
254            return this.descriptorResolver;
255        }
256        
257        public Project getProject() {
258            return this.project;
259        }
260        
261        public TopDownAnalysisParameters getTopDownAnalysisParameters() {
262            return this.topDownAnalysisParameters;
263        }
264        
265        public BindingTrace getBindingTrace() {
266            return this.bindingTrace;
267        }
268        
269        public ModuleDescriptorImpl getModuleDescriptor() {
270            return this.moduleDescriptor;
271        }
272        
273    }