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