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