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.resolve.java.JavaBridgeConfiguration;
031    import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
032    import org.jetbrains.jet.lang.resolve.java.mapping.JavaToKotlinClassMap;
033    import org.jetbrains.jet.lang.resolve.java.JavaClassFinderImpl;
034    import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedExternalSignatureResolver;
035    import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedJavaResolverCache;
036    import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedErrorReporter;
037    import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedMethodSignatureChecker;
038    import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedExternalAnnotationResolver;
039    import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileKotlinClassFinder;
040    import org.jetbrains.jet.lang.resolve.NamespaceFactoryImpl;
041    import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder;
042    import org.jetbrains.jet.lang.resolve.DeclarationResolver;
043    import org.jetbrains.jet.lang.resolve.AnnotationResolver;
044    import org.jetbrains.jet.lang.resolve.calls.CallResolver;
045    import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver;
046    import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
047    import org.jetbrains.jet.lang.resolve.calls.CallExpressionResolver;
048    import org.jetbrains.jet.lang.resolve.TypeResolver;
049    import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver;
050    import org.jetbrains.jet.lang.resolve.calls.CandidateResolver;
051    import org.jetbrains.jet.lang.resolve.ImportsResolver;
052    import org.jetbrains.jet.lang.psi.JetImportsFactory;
053    import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
054    import org.jetbrains.jet.lang.resolve.OverloadResolver;
055    import org.jetbrains.jet.lang.resolve.OverrideResolver;
056    import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
057    import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver;
058    import org.jetbrains.jet.lang.resolve.FunctionAnalyzerExtension;
059    import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
060    import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassResolver;
061    import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationResolver;
062    import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationArgumentResolver;
063    import org.jetbrains.jet.lang.resolve.java.resolver.JavaTypeTransformer;
064    import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver;
065    import org.jetbrains.jet.lang.resolve.kotlin.AnnotationDescriptorDeserializer;
066    import org.jetbrains.jet.lang.resolve.java.resolver.JavaNamespaceResolver;
067    import org.jetbrains.jet.lang.resolve.java.resolver.JavaMemberResolver;
068    import org.jetbrains.jet.lang.resolve.java.resolver.JavaConstructorResolver;
069    import org.jetbrains.jet.lang.resolve.java.resolver.JavaValueParameterResolver;
070    import org.jetbrains.jet.lang.resolve.java.resolver.JavaFunctionResolver;
071    import org.jetbrains.jet.lang.resolve.java.resolver.JavaTypeParameterResolver;
072    import org.jetbrains.jet.lang.resolve.java.resolver.JavaPropertyResolver;
073    import org.jetbrains.jet.lang.resolve.java.resolver.JavaSupertypeResolver;
074    import org.jetbrains.annotations.NotNull;
075    import javax.annotation.PreDestroy;
076    
077    /* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */
078    public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnalyzer {
079        
080        private final TopDownAnalyzer topDownAnalyzer;
081        private final TopDownAnalysisContext topDownAnalysisContext;
082        private final BodyResolver bodyResolver;
083        private final ControlFlowAnalyzer controlFlowAnalyzer;
084        private final DeclarationsChecker declarationsChecker;
085        private final DescriptorResolver descriptorResolver;
086        private final CallResolverExtensionProvider callResolverExtensionProvider;
087        private final Project project;
088        private final TopDownAnalysisParameters topDownAnalysisParameters;
089        private final BindingTrace bindingTrace;
090        private final ModuleDescriptorImpl moduleDescriptor;
091        private final JavaBridgeConfiguration javaBridgeConfiguration;
092        private final JavaDescriptorResolver javaDescriptorResolver;
093        private final JavaToKotlinClassMap javaToKotlinClassMap;
094        private final JavaClassFinderImpl javaClassFinder;
095        private final TraceBasedExternalSignatureResolver traceBasedExternalSignatureResolver;
096        private final TraceBasedJavaResolverCache traceBasedJavaResolverCache;
097        private final TraceBasedErrorReporter traceBasedErrorReporter;
098        private final PsiBasedMethodSignatureChecker psiBasedMethodSignatureChecker;
099        private final PsiBasedExternalAnnotationResolver psiBasedExternalAnnotationResolver;
100        private final VirtualFileKotlinClassFinder virtualFileKotlinClassFinder;
101        private final NamespaceFactoryImpl namespaceFactory;
102        private final VirtualFileFinder virtualFileFinder;
103        private final DeclarationResolver declarationResolver;
104        private final AnnotationResolver annotationResolver;
105        private final CallResolver callResolver;
106        private final ArgumentTypeResolver argumentTypeResolver;
107        private final ExpressionTypingServices expressionTypingServices;
108        private final CallExpressionResolver callExpressionResolver;
109        private final TypeResolver typeResolver;
110        private final QualifiedExpressionResolver qualifiedExpressionResolver;
111        private final CandidateResolver candidateResolver;
112        private final ImportsResolver importsResolver;
113        private final JetImportsFactory jetImportsFactory;
114        private final ScriptHeaderResolver scriptHeaderResolver;
115        private final OverloadResolver overloadResolver;
116        private final OverrideResolver overrideResolver;
117        private final TypeHierarchyResolver typeHierarchyResolver;
118        private final DelegatedPropertyResolver delegatedPropertyResolver;
119        private final FunctionAnalyzerExtension functionAnalyzerExtension;
120        private final ScriptBodyResolver scriptBodyResolver;
121        private final JavaClassResolver javaClassResolver;
122        private final JavaAnnotationResolver javaAnnotationResolver;
123        private final JavaAnnotationArgumentResolver javaAnnotationArgumentResolver;
124        private final JavaTypeTransformer javaTypeTransformer;
125        private final DeserializedDescriptorResolver deserializedDescriptorResolver;
126        private final AnnotationDescriptorDeserializer annotationDescriptorDeserializer;
127        private final JavaNamespaceResolver javaNamespaceResolver;
128        private final JavaMemberResolver javaMemberResolver;
129        private final JavaConstructorResolver javaConstructorResolver;
130        private final JavaValueParameterResolver javaValueParameterResolver;
131        private final JavaFunctionResolver javaFunctionResolver;
132        private final JavaTypeParameterResolver javaTypeParameterResolver;
133        private final JavaPropertyResolver javaPropertyResolver;
134        private final JavaSupertypeResolver javaSupertypeResolver;
135        
136        public InjectorForTopDownAnalyzerForJvm(
137            @NotNull Project project,
138            @NotNull TopDownAnalysisParameters topDownAnalysisParameters,
139            @NotNull BindingTrace bindingTrace,
140            @NotNull ModuleDescriptorImpl moduleDescriptor
141        ) {
142            this.topDownAnalyzer = new TopDownAnalyzer();
143            this.topDownAnalysisContext = new TopDownAnalysisContext();
144            this.bodyResolver = new BodyResolver();
145            this.controlFlowAnalyzer = new ControlFlowAnalyzer();
146            this.declarationsChecker = new DeclarationsChecker();
147            this.descriptorResolver = new DescriptorResolver();
148            this.callResolverExtensionProvider = new CallResolverExtensionProvider();
149            this.project = project;
150            this.topDownAnalysisParameters = topDownAnalysisParameters;
151            this.bindingTrace = bindingTrace;
152            this.moduleDescriptor = moduleDescriptor;
153            this.javaBridgeConfiguration = new JavaBridgeConfiguration();
154            this.javaDescriptorResolver = new JavaDescriptorResolver();
155            this.javaToKotlinClassMap = org.jetbrains.jet.lang.resolve.java.mapping.JavaToKotlinClassMap.getInstance();
156            this.javaClassFinder = new JavaClassFinderImpl();
157            this.traceBasedExternalSignatureResolver = new TraceBasedExternalSignatureResolver();
158            this.traceBasedJavaResolverCache = new TraceBasedJavaResolverCache();
159            this.traceBasedErrorReporter = new TraceBasedErrorReporter();
160            this.psiBasedMethodSignatureChecker = new PsiBasedMethodSignatureChecker();
161            this.psiBasedExternalAnnotationResolver = new PsiBasedExternalAnnotationResolver();
162            this.virtualFileKotlinClassFinder = new VirtualFileKotlinClassFinder();
163            this.namespaceFactory = new NamespaceFactoryImpl();
164            this.virtualFileFinder = com.intellij.openapi.components.ServiceManager.getService(project, VirtualFileFinder.class);
165            this.declarationResolver = new DeclarationResolver();
166            this.annotationResolver = new AnnotationResolver();
167            this.callResolver = new CallResolver();
168            this.argumentTypeResolver = new ArgumentTypeResolver();
169            this.expressionTypingServices = new ExpressionTypingServices();
170            this.callExpressionResolver = new CallExpressionResolver();
171            this.typeResolver = new TypeResolver();
172            this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
173            this.candidateResolver = new CandidateResolver();
174            this.importsResolver = new ImportsResolver();
175            this.jetImportsFactory = new JetImportsFactory();
176            this.scriptHeaderResolver = new ScriptHeaderResolver();
177            this.overloadResolver = new OverloadResolver();
178            this.overrideResolver = new OverrideResolver();
179            this.typeHierarchyResolver = new TypeHierarchyResolver();
180            this.delegatedPropertyResolver = new DelegatedPropertyResolver();
181            this.functionAnalyzerExtension = new FunctionAnalyzerExtension();
182            this.scriptBodyResolver = new ScriptBodyResolver();
183            this.javaClassResolver = new JavaClassResolver();
184            this.javaAnnotationResolver = new JavaAnnotationResolver();
185            this.javaAnnotationArgumentResolver = new JavaAnnotationArgumentResolver();
186            this.javaTypeTransformer = new JavaTypeTransformer();
187            this.deserializedDescriptorResolver = new DeserializedDescriptorResolver();
188            this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer();
189            this.javaNamespaceResolver = new JavaNamespaceResolver();
190            this.javaMemberResolver = new JavaMemberResolver();
191            this.javaConstructorResolver = new JavaConstructorResolver();
192            this.javaValueParameterResolver = new JavaValueParameterResolver();
193            this.javaFunctionResolver = new JavaFunctionResolver();
194            this.javaTypeParameterResolver = new JavaTypeParameterResolver();
195            this.javaPropertyResolver = new JavaPropertyResolver();
196            this.javaSupertypeResolver = new JavaSupertypeResolver();
197    
198            this.topDownAnalyzer.setBodyResolver(bodyResolver);
199            this.topDownAnalyzer.setContext(topDownAnalysisContext);
200            this.topDownAnalyzer.setDeclarationResolver(declarationResolver);
201            this.topDownAnalyzer.setModuleDescriptor(moduleDescriptor);
202            this.topDownAnalyzer.setNamespaceFactory(namespaceFactory);
203            this.topDownAnalyzer.setOverloadResolver(overloadResolver);
204            this.topDownAnalyzer.setOverrideResolver(overrideResolver);
205            this.topDownAnalyzer.setTopDownAnalysisParameters(topDownAnalysisParameters);
206            this.topDownAnalyzer.setTrace(bindingTrace);
207            this.topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
208    
209            this.topDownAnalysisContext.setTopDownAnalysisParameters(topDownAnalysisParameters);
210    
211            this.bodyResolver.setAnnotationResolver(annotationResolver);
212            this.bodyResolver.setCallResolver(callResolver);
213            this.bodyResolver.setContext(topDownAnalysisContext);
214            this.bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
215            this.bodyResolver.setDeclarationsChecker(declarationsChecker);
216            this.bodyResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
217            this.bodyResolver.setExpressionTypingServices(expressionTypingServices);
218            this.bodyResolver.setFunctionAnalyzerExtension(functionAnalyzerExtension);
219            this.bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver);
220            this.bodyResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
221            this.bodyResolver.setTrace(bindingTrace);
222    
223            this.controlFlowAnalyzer.setTopDownAnalysisParameters(topDownAnalysisParameters);
224            this.controlFlowAnalyzer.setTrace(bindingTrace);
225    
226            this.declarationsChecker.setTrace(bindingTrace);
227    
228            this.descriptorResolver.setAnnotationResolver(annotationResolver);
229            this.descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
230            this.descriptorResolver.setExpressionTypingServices(expressionTypingServices);
231            this.descriptorResolver.setTypeResolver(typeResolver);
232    
233            this.javaBridgeConfiguration.setJavaDescriptorResolver(javaDescriptorResolver);
234    
235            javaDescriptorResolver.setClassResolver(javaClassResolver);
236            javaDescriptorResolver.setNamespaceResolver(javaNamespaceResolver);
237    
238            javaClassFinder.setProject(project);
239    
240            traceBasedExternalSignatureResolver.setAnnotationResolver(javaAnnotationResolver);
241            traceBasedExternalSignatureResolver.setTrace(bindingTrace);
242    
243            traceBasedJavaResolverCache.setTrace(bindingTrace);
244    
245            traceBasedErrorReporter.setTrace(bindingTrace);
246    
247            psiBasedMethodSignatureChecker.setAnnotationResolver(javaAnnotationResolver);
248            psiBasedMethodSignatureChecker.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
249    
250            virtualFileKotlinClassFinder.setVirtualFileFinder(virtualFileFinder);
251    
252            this.namespaceFactory.setModuleDescriptor(moduleDescriptor);
253            this.namespaceFactory.setTrace(bindingTrace);
254    
255            declarationResolver.setAnnotationResolver(annotationResolver);
256            declarationResolver.setContext(topDownAnalysisContext);
257            declarationResolver.setDescriptorResolver(descriptorResolver);
258            declarationResolver.setImportsResolver(importsResolver);
259            declarationResolver.setScriptHeaderResolver(scriptHeaderResolver);
260            declarationResolver.setTrace(bindingTrace);
261    
262            annotationResolver.setCallResolver(callResolver);
263            annotationResolver.setExpressionTypingServices(expressionTypingServices);
264    
265            callResolver.setArgumentTypeResolver(argumentTypeResolver);
266            callResolver.setCandidateResolver(candidateResolver);
267            callResolver.setExpressionTypingServices(expressionTypingServices);
268            callResolver.setTypeResolver(typeResolver);
269    
270            argumentTypeResolver.setExpressionTypingServices(expressionTypingServices);
271            argumentTypeResolver.setTypeResolver(typeResolver);
272    
273            expressionTypingServices.setAnnotationResolver(annotationResolver);
274            expressionTypingServices.setCallExpressionResolver(callExpressionResolver);
275            expressionTypingServices.setCallResolver(callResolver);
276            expressionTypingServices.setDescriptorResolver(descriptorResolver);
277            expressionTypingServices.setExtensionProvider(callResolverExtensionProvider);
278            expressionTypingServices.setPlatformToKotlinClassMap(javaToKotlinClassMap);
279            expressionTypingServices.setProject(project);
280            expressionTypingServices.setTypeResolver(typeResolver);
281    
282            callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
283    
284            typeResolver.setAnnotationResolver(annotationResolver);
285            typeResolver.setModuleDescriptor(moduleDescriptor);
286            typeResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
287    
288            candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
289    
290            importsResolver.setContext(topDownAnalysisContext);
291            importsResolver.setImportsFactory(jetImportsFactory);
292            importsResolver.setModuleDescriptor(moduleDescriptor);
293            importsResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
294            importsResolver.setTrace(bindingTrace);
295    
296            jetImportsFactory.setProject(project);
297    
298            scriptHeaderResolver.setContext(topDownAnalysisContext);
299            scriptHeaderResolver.setDependencyClassByQualifiedNameResolver(javaDescriptorResolver);
300            scriptHeaderResolver.setNamespaceFactory(namespaceFactory);
301            scriptHeaderResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
302            scriptHeaderResolver.setTrace(bindingTrace);
303    
304            overloadResolver.setContext(topDownAnalysisContext);
305            overloadResolver.setTrace(bindingTrace);
306    
307            overrideResolver.setContext(topDownAnalysisContext);
308            overrideResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
309            overrideResolver.setTrace(bindingTrace);
310    
311            typeHierarchyResolver.setContext(topDownAnalysisContext);
312            typeHierarchyResolver.setDescriptorResolver(descriptorResolver);
313            typeHierarchyResolver.setImportsResolver(importsResolver);
314            typeHierarchyResolver.setNamespaceFactory(namespaceFactory);
315            typeHierarchyResolver.setScriptHeaderResolver(scriptHeaderResolver);
316            typeHierarchyResolver.setTrace(bindingTrace);
317    
318            delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
319    
320            functionAnalyzerExtension.setTrace(bindingTrace);
321    
322            scriptBodyResolver.setContext(topDownAnalysisContext);
323            scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
324            scriptBodyResolver.setTrace(bindingTrace);
325    
326            javaClassResolver.setAnnotationResolver(javaAnnotationResolver);
327            javaClassResolver.setCache(traceBasedJavaResolverCache);
328            javaClassResolver.setDeserializedDescriptorResolver(deserializedDescriptorResolver);
329            javaClassResolver.setFunctionResolver(javaFunctionResolver);
330            javaClassResolver.setJavaClassFinder(javaClassFinder);
331            javaClassResolver.setKotlinClassFinder(virtualFileKotlinClassFinder);
332            javaClassResolver.setMemberResolver(javaMemberResolver);
333            javaClassResolver.setNamespaceResolver(javaNamespaceResolver);
334            javaClassResolver.setSupertypesResolver(javaSupertypeResolver);
335            javaClassResolver.setTypeParameterResolver(javaTypeParameterResolver);
336    
337            javaAnnotationResolver.setArgumentResolver(javaAnnotationArgumentResolver);
338            javaAnnotationResolver.setClassResolver(javaClassResolver);
339            javaAnnotationResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
340    
341            javaAnnotationArgumentResolver.setAnnotationResolver(javaAnnotationResolver);
342            javaAnnotationArgumentResolver.setClassResolver(javaClassResolver);
343            javaAnnotationArgumentResolver.setTypeTransformer(javaTypeTransformer);
344    
345            javaTypeTransformer.setClassResolver(javaClassResolver);
346    
347            deserializedDescriptorResolver.setAnnotationDeserializer(annotationDescriptorDeserializer);
348            deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
349            deserializedDescriptorResolver.setJavaClassResolver(javaClassResolver);
350            deserializedDescriptorResolver.setJavaNamespaceResolver(javaNamespaceResolver);
351    
352            annotationDescriptorDeserializer.setErrorReporter(traceBasedErrorReporter);
353            annotationDescriptorDeserializer.setJavaClassResolver(javaClassResolver);
354            annotationDescriptorDeserializer.setKotlinClassFinder(virtualFileKotlinClassFinder);
355    
356            javaNamespaceResolver.setCache(traceBasedJavaResolverCache);
357            javaNamespaceResolver.setDeserializedDescriptorResolver(deserializedDescriptorResolver);
358            javaNamespaceResolver.setJavaClassFinder(javaClassFinder);
359            javaNamespaceResolver.setKotlinClassFinder(virtualFileKotlinClassFinder);
360            javaNamespaceResolver.setMemberResolver(javaMemberResolver);
361    
362            javaMemberResolver.setClassResolver(javaClassResolver);
363            javaMemberResolver.setConstructorResolver(javaConstructorResolver);
364            javaMemberResolver.setFunctionResolver(javaFunctionResolver);
365            javaMemberResolver.setNamespaceResolver(javaNamespaceResolver);
366            javaMemberResolver.setPropertyResolver(javaPropertyResolver);
367    
368            javaConstructorResolver.setCache(traceBasedJavaResolverCache);
369            javaConstructorResolver.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
370            javaConstructorResolver.setTypeTransformer(javaTypeTransformer);
371            javaConstructorResolver.setValueParameterResolver(javaValueParameterResolver);
372    
373            javaValueParameterResolver.setAnnotationResolver(javaAnnotationResolver);
374            javaValueParameterResolver.setTypeTransformer(javaTypeTransformer);
375    
376            javaFunctionResolver.setAnnotationResolver(javaAnnotationResolver);
377            javaFunctionResolver.setCache(traceBasedJavaResolverCache);
378            javaFunctionResolver.setErrorReporter(traceBasedErrorReporter);
379            javaFunctionResolver.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
380            javaFunctionResolver.setSignatureChecker(psiBasedMethodSignatureChecker);
381            javaFunctionResolver.setTypeParameterResolver(javaTypeParameterResolver);
382            javaFunctionResolver.setTypeTransformer(javaTypeTransformer);
383            javaFunctionResolver.setValueParameterResolver(javaValueParameterResolver);
384    
385            javaTypeParameterResolver.setTypeTransformer(javaTypeTransformer);
386    
387            javaPropertyResolver.setAnnotationResolver(javaAnnotationResolver);
388            javaPropertyResolver.setCache(traceBasedJavaResolverCache);
389            javaPropertyResolver.setErrorReporter(traceBasedErrorReporter);
390            javaPropertyResolver.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
391            javaPropertyResolver.setTypeTransformer(javaTypeTransformer);
392    
393            javaSupertypeResolver.setClassResolver(javaClassResolver);
394            javaSupertypeResolver.setTypeTransformer(javaTypeTransformer);
395    
396            javaClassFinder.initialize();
397    
398        }
399        
400        @PreDestroy
401        public void destroy() {
402        }
403        
404        public TopDownAnalyzer getTopDownAnalyzer() {
405            return this.topDownAnalyzer;
406        }
407        
408        public TopDownAnalysisContext getTopDownAnalysisContext() {
409            return this.topDownAnalysisContext;
410        }
411        
412        public BodyResolver getBodyResolver() {
413            return this.bodyResolver;
414        }
415        
416        public ControlFlowAnalyzer getControlFlowAnalyzer() {
417            return this.controlFlowAnalyzer;
418        }
419        
420        public DeclarationsChecker getDeclarationsChecker() {
421            return this.declarationsChecker;
422        }
423        
424        public DescriptorResolver getDescriptorResolver() {
425            return this.descriptorResolver;
426        }
427        
428        public Project getProject() {
429            return this.project;
430        }
431        
432        public TopDownAnalysisParameters getTopDownAnalysisParameters() {
433            return this.topDownAnalysisParameters;
434        }
435        
436        public BindingTrace getBindingTrace() {
437            return this.bindingTrace;
438        }
439        
440        public ModuleDescriptorImpl getModuleDescriptor() {
441            return this.moduleDescriptor;
442        }
443        
444        public JavaBridgeConfiguration getJavaBridgeConfiguration() {
445            return this.javaBridgeConfiguration;
446        }
447        
448        public NamespaceFactoryImpl getNamespaceFactory() {
449            return this.namespaceFactory;
450        }
451        
452    }