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 017package org.jetbrains.jet.di; 018 019import org.jetbrains.jet.lang.resolve.TopDownAnalyzer; 020import org.jetbrains.jet.lang.resolve.TopDownAnalysisContext; 021import org.jetbrains.jet.lang.resolve.BodyResolver; 022import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer; 023import org.jetbrains.jet.lang.resolve.DeclarationsChecker; 024import org.jetbrains.jet.lang.resolve.DescriptorResolver; 025import org.jetbrains.jet.lang.resolve.calls.NeedSyntheticCallResolverExtension; 026import com.intellij.openapi.project.Project; 027import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters; 028import org.jetbrains.jet.lang.resolve.BindingTrace; 029import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl; 030import org.jetbrains.jet.lang.resolve.java.JavaBridgeConfiguration; 031import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver; 032import org.jetbrains.jet.lang.resolve.java.PsiClassFinderImpl; 033import org.jetbrains.jet.lang.resolve.NamespaceFactoryImpl; 034import org.jetbrains.jet.lang.resolve.DeclarationResolver; 035import org.jetbrains.jet.lang.resolve.AnnotationResolver; 036import org.jetbrains.jet.lang.resolve.calls.CallResolver; 037import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver; 038import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices; 039import org.jetbrains.jet.lang.resolve.calls.CallExpressionResolver; 040import org.jetbrains.jet.lang.resolve.TypeResolver; 041import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver; 042import org.jetbrains.jet.lang.resolve.calls.CandidateResolver; 043import org.jetbrains.jet.lang.resolve.ImportsResolver; 044import org.jetbrains.jet.lang.psi.JetImportsFactory; 045import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver; 046import org.jetbrains.jet.lang.resolve.OverloadResolver; 047import org.jetbrains.jet.lang.resolve.OverrideResolver; 048import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver; 049import org.jetbrains.jet.lang.resolve.ScriptBodyResolver; 050import org.jetbrains.jet.lang.resolve.java.JavaSemanticServices; 051import org.jetbrains.jet.lang.resolve.java.provider.PsiDeclarationProviderFactory; 052import org.jetbrains.jet.lang.resolve.java.JavaTypeTransformer; 053import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassResolver; 054import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationResolver; 055import org.jetbrains.jet.lang.resolve.java.resolver.JavaCompileTimeConstResolver; 056import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassObjectResolver; 057import org.jetbrains.jet.lang.resolve.java.resolver.JavaSupertypeResolver; 058import org.jetbrains.jet.lang.resolve.java.resolver.JavaFunctionResolver; 059import org.jetbrains.jet.lang.resolve.java.resolver.JavaValueParameterResolver; 060import org.jetbrains.jet.lang.resolve.java.resolver.JavaSignatureResolver; 061import org.jetbrains.jet.lang.resolve.java.resolver.JavaNamespaceResolver; 062import org.jetbrains.jet.lang.resolve.java.resolver.JavaConstructorResolver; 063import org.jetbrains.jet.lang.resolve.java.resolver.JavaInnerClassResolver; 064import org.jetbrains.jet.lang.resolve.java.resolver.JavaPropertyResolver; 065import org.jetbrains.annotations.NotNull; 066import javax.annotation.PreDestroy; 067 068/* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */ 069public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnalyzer { 070 071 private TopDownAnalyzer topDownAnalyzer; 072 private TopDownAnalysisContext topDownAnalysisContext; 073 private BodyResolver bodyResolver; 074 private ControlFlowAnalyzer controlFlowAnalyzer; 075 private DeclarationsChecker declarationsChecker; 076 private DescriptorResolver descriptorResolver; 077 private NeedSyntheticCallResolverExtension needSyntheticCallResolverExtension; 078 private final Project project; 079 private final TopDownAnalysisParameters topDownAnalysisParameters; 080 private final BindingTrace bindingTrace; 081 private final ModuleDescriptorImpl moduleDescriptor; 082 private JavaBridgeConfiguration javaBridgeConfiguration; 083 private JavaDescriptorResolver javaDescriptorResolver; 084 private PsiClassFinderImpl psiClassFinder; 085 private NamespaceFactoryImpl namespaceFactory; 086 private DeclarationResolver declarationResolver; 087 private AnnotationResolver annotationResolver; 088 private CallResolver callResolver; 089 private ArgumentTypeResolver argumentTypeResolver; 090 private ExpressionTypingServices expressionTypingServices; 091 private CallExpressionResolver callExpressionResolver; 092 private TypeResolver typeResolver; 093 private QualifiedExpressionResolver qualifiedExpressionResolver; 094 private CandidateResolver candidateResolver; 095 private ImportsResolver importsResolver; 096 private JetImportsFactory jetImportsFactory; 097 private ScriptHeaderResolver scriptHeaderResolver; 098 private OverloadResolver overloadResolver; 099 private OverrideResolver overrideResolver; 100 private TypeHierarchyResolver typeHierarchyResolver; 101 private ScriptBodyResolver scriptBodyResolver; 102 private JavaSemanticServices javaSemanticServices; 103 private PsiDeclarationProviderFactory psiDeclarationProviderFactory; 104 private JavaTypeTransformer javaTypeTransformer; 105 private JavaClassResolver javaClassResolver; 106 private JavaAnnotationResolver javaAnnotationResolver; 107 private JavaCompileTimeConstResolver javaCompileTimeConstResolver; 108 private JavaClassObjectResolver javaClassObjectResolver; 109 private JavaSupertypeResolver javaSupertypeResolver; 110 private JavaFunctionResolver javaFunctionResolver; 111 private JavaValueParameterResolver javaValueParameterResolver; 112 private JavaSignatureResolver javaSignatureResolver; 113 private JavaNamespaceResolver javaNamespaceResolver; 114 private JavaConstructorResolver javaConstructorResolver; 115 private JavaInnerClassResolver javaInnerClassResolver; 116 private JavaPropertyResolver javaPropertyResolver; 117 118 public InjectorForTopDownAnalyzerForJvm( 119 @NotNull Project project, 120 @NotNull TopDownAnalysisParameters topDownAnalysisParameters, 121 @NotNull BindingTrace bindingTrace, 122 @NotNull ModuleDescriptorImpl moduleDescriptor 123 ) { 124 this.topDownAnalyzer = new TopDownAnalyzer(); 125 this.topDownAnalysisContext = new TopDownAnalysisContext(); 126 this.bodyResolver = new BodyResolver(); 127 this.controlFlowAnalyzer = new ControlFlowAnalyzer(); 128 this.declarationsChecker = new DeclarationsChecker(); 129 this.descriptorResolver = new DescriptorResolver(); 130 this.needSyntheticCallResolverExtension = new NeedSyntheticCallResolverExtension(); 131 this.project = project; 132 this.topDownAnalysisParameters = topDownAnalysisParameters; 133 this.bindingTrace = bindingTrace; 134 this.moduleDescriptor = moduleDescriptor; 135 this.javaBridgeConfiguration = new JavaBridgeConfiguration(); 136 this.javaDescriptorResolver = new JavaDescriptorResolver(); 137 this.psiClassFinder = new PsiClassFinderImpl(); 138 this.namespaceFactory = new NamespaceFactoryImpl(); 139 this.declarationResolver = new DeclarationResolver(); 140 this.annotationResolver = new AnnotationResolver(); 141 this.callResolver = new CallResolver(); 142 this.argumentTypeResolver = new ArgumentTypeResolver(); 143 this.expressionTypingServices = new ExpressionTypingServices(); 144 this.callExpressionResolver = new CallExpressionResolver(); 145 this.typeResolver = new TypeResolver(); 146 this.qualifiedExpressionResolver = new QualifiedExpressionResolver(); 147 this.candidateResolver = new CandidateResolver(); 148 this.importsResolver = new ImportsResolver(); 149 this.jetImportsFactory = new JetImportsFactory(); 150 this.scriptHeaderResolver = new ScriptHeaderResolver(); 151 this.overloadResolver = new OverloadResolver(); 152 this.overrideResolver = new OverrideResolver(); 153 this.typeHierarchyResolver = new TypeHierarchyResolver(); 154 this.scriptBodyResolver = new ScriptBodyResolver(); 155 this.javaSemanticServices = new JavaSemanticServices(); 156 this.psiDeclarationProviderFactory = new PsiDeclarationProviderFactory(psiClassFinder); 157 this.javaTypeTransformer = new JavaTypeTransformer(); 158 this.javaClassResolver = new JavaClassResolver(); 159 this.javaAnnotationResolver = new JavaAnnotationResolver(); 160 this.javaCompileTimeConstResolver = new JavaCompileTimeConstResolver(); 161 this.javaClassObjectResolver = new JavaClassObjectResolver(); 162 this.javaSupertypeResolver = new JavaSupertypeResolver(); 163 this.javaFunctionResolver = new JavaFunctionResolver(); 164 this.javaValueParameterResolver = new JavaValueParameterResolver(); 165 this.javaSignatureResolver = new JavaSignatureResolver(); 166 this.javaNamespaceResolver = new JavaNamespaceResolver(); 167 this.javaConstructorResolver = new JavaConstructorResolver(); 168 this.javaInnerClassResolver = new JavaInnerClassResolver(); 169 this.javaPropertyResolver = new JavaPropertyResolver(); 170 171 this.topDownAnalyzer.setBodyResolver(bodyResolver); 172 this.topDownAnalyzer.setContext(topDownAnalysisContext); 173 this.topDownAnalyzer.setDeclarationResolver(declarationResolver); 174 this.topDownAnalyzer.setModuleDescriptor(moduleDescriptor); 175 this.topDownAnalyzer.setNamespaceFactory(namespaceFactory); 176 this.topDownAnalyzer.setOverloadResolver(overloadResolver); 177 this.topDownAnalyzer.setOverrideResolver(overrideResolver); 178 this.topDownAnalyzer.setTopDownAnalysisParameters(topDownAnalysisParameters); 179 this.topDownAnalyzer.setTrace(bindingTrace); 180 this.topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver); 181 182 this.topDownAnalysisContext.setTopDownAnalysisParameters(topDownAnalysisParameters); 183 184 this.bodyResolver.setAnnotationResolver(annotationResolver); 185 this.bodyResolver.setCallResolver(callResolver); 186 this.bodyResolver.setContext(topDownAnalysisContext); 187 this.bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer); 188 this.bodyResolver.setDeclarationsChecker(declarationsChecker); 189 this.bodyResolver.setDescriptorResolver(descriptorResolver); 190 this.bodyResolver.setExpressionTypingServices(expressionTypingServices); 191 this.bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver); 192 this.bodyResolver.setTopDownAnalysisParameters(topDownAnalysisParameters); 193 this.bodyResolver.setTrace(bindingTrace); 194 195 this.controlFlowAnalyzer.setTopDownAnalysisParameters(topDownAnalysisParameters); 196 this.controlFlowAnalyzer.setTrace(bindingTrace); 197 198 this.declarationsChecker.setTrace(bindingTrace); 199 200 this.descriptorResolver.setAnnotationResolver(annotationResolver); 201 this.descriptorResolver.setExpressionTypingServices(expressionTypingServices); 202 this.descriptorResolver.setTypeResolver(typeResolver); 203 204 this.javaBridgeConfiguration.setJavaSemanticServices(javaSemanticServices); 205 206 javaDescriptorResolver.setClassResolver(javaClassResolver); 207 javaDescriptorResolver.setConstructorResolver(javaConstructorResolver); 208 javaDescriptorResolver.setFunctionResolver(javaFunctionResolver); 209 javaDescriptorResolver.setInnerClassResolver(javaInnerClassResolver); 210 javaDescriptorResolver.setNamespaceResolver(javaNamespaceResolver); 211 javaDescriptorResolver.setPropertiesResolver(javaPropertyResolver); 212 213 psiClassFinder.setProject(project); 214 215 this.namespaceFactory.setModuleDescriptor(moduleDescriptor); 216 this.namespaceFactory.setTrace(bindingTrace); 217 218 declarationResolver.setAnnotationResolver(annotationResolver); 219 declarationResolver.setContext(topDownAnalysisContext); 220 declarationResolver.setDescriptorResolver(descriptorResolver); 221 declarationResolver.setImportsResolver(importsResolver); 222 declarationResolver.setScriptHeaderResolver(scriptHeaderResolver); 223 declarationResolver.setTrace(bindingTrace); 224 225 annotationResolver.setCallResolver(callResolver); 226 annotationResolver.setExpressionTypingServices(expressionTypingServices); 227 228 callResolver.setArgumentTypeResolver(argumentTypeResolver); 229 callResolver.setCandidateResolver(candidateResolver); 230 callResolver.setExpressionTypingServices(expressionTypingServices); 231 callResolver.setExtension(needSyntheticCallResolverExtension); 232 callResolver.setTypeResolver(typeResolver); 233 234 argumentTypeResolver.setExpressionTypingServices(expressionTypingServices); 235 argumentTypeResolver.setTypeResolver(typeResolver); 236 237 expressionTypingServices.setCallExpressionResolver(callExpressionResolver); 238 expressionTypingServices.setCallResolver(callResolver); 239 expressionTypingServices.setDescriptorResolver(descriptorResolver); 240 expressionTypingServices.setProject(project); 241 expressionTypingServices.setTypeResolver(typeResolver); 242 243 callExpressionResolver.setExpressionTypingServices(expressionTypingServices); 244 245 typeResolver.setAnnotationResolver(annotationResolver); 246 typeResolver.setDescriptorResolver(descriptorResolver); 247 typeResolver.setModuleDescriptor(moduleDescriptor); 248 typeResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver); 249 250 candidateResolver.setArgumentTypeResolver(argumentTypeResolver); 251 252 importsResolver.setContext(topDownAnalysisContext); 253 importsResolver.setImportsFactory(jetImportsFactory); 254 importsResolver.setModuleDescriptor(moduleDescriptor); 255 importsResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver); 256 importsResolver.setTrace(bindingTrace); 257 258 jetImportsFactory.setProject(project); 259 260 scriptHeaderResolver.setContext(topDownAnalysisContext); 261 scriptHeaderResolver.setDependencyClassByQualifiedNameResolver(javaDescriptorResolver); 262 scriptHeaderResolver.setNamespaceFactory(namespaceFactory); 263 scriptHeaderResolver.setTopDownAnalysisParameters(topDownAnalysisParameters); 264 scriptHeaderResolver.setTrace(bindingTrace); 265 266 overloadResolver.setContext(topDownAnalysisContext); 267 overloadResolver.setTrace(bindingTrace); 268 269 overrideResolver.setContext(topDownAnalysisContext); 270 overrideResolver.setTopDownAnalysisParameters(topDownAnalysisParameters); 271 overrideResolver.setTrace(bindingTrace); 272 273 typeHierarchyResolver.setContext(topDownAnalysisContext); 274 typeHierarchyResolver.setDescriptorResolver(descriptorResolver); 275 typeHierarchyResolver.setImportsResolver(importsResolver); 276 typeHierarchyResolver.setNamespaceFactory(namespaceFactory); 277 typeHierarchyResolver.setScriptHeaderResolver(scriptHeaderResolver); 278 typeHierarchyResolver.setTrace(bindingTrace); 279 280 scriptBodyResolver.setContext(topDownAnalysisContext); 281 scriptBodyResolver.setExpressionTypingServices(expressionTypingServices); 282 scriptBodyResolver.setTrace(bindingTrace); 283 284 javaSemanticServices.setDescriptorResolver(javaDescriptorResolver); 285 javaSemanticServices.setPsiClassFinder(psiClassFinder); 286 javaSemanticServices.setPsiDeclarationProviderFactory(psiDeclarationProviderFactory); 287 javaSemanticServices.setTrace(bindingTrace); 288 javaSemanticServices.setTypeTransformer(javaTypeTransformer); 289 290 javaTypeTransformer.setJavaSemanticServices(javaSemanticServices); 291 javaTypeTransformer.setResolver(javaDescriptorResolver); 292 293 javaClassResolver.setAnnotationResolver(javaAnnotationResolver); 294 javaClassResolver.setClassObjectResolver(javaClassObjectResolver); 295 javaClassResolver.setFunctionResolver(javaFunctionResolver); 296 javaClassResolver.setNamespaceResolver(javaNamespaceResolver); 297 javaClassResolver.setPsiClassFinder(psiClassFinder); 298 javaClassResolver.setSemanticServices(javaSemanticServices); 299 javaClassResolver.setSignatureResolver(javaSignatureResolver); 300 javaClassResolver.setSupertypesResolver(javaSupertypeResolver); 301 javaClassResolver.setTrace(bindingTrace); 302 303 javaAnnotationResolver.setClassResolver(javaClassResolver); 304 javaAnnotationResolver.setCompileTimeConstResolver(javaCompileTimeConstResolver); 305 306 javaCompileTimeConstResolver.setAnnotationResolver(javaAnnotationResolver); 307 javaCompileTimeConstResolver.setClassResolver(javaClassResolver); 308 309 javaClassObjectResolver.setSemanticServices(javaSemanticServices); 310 javaClassObjectResolver.setSupertypesResolver(javaSupertypeResolver); 311 javaClassObjectResolver.setTrace(bindingTrace); 312 313 javaSupertypeResolver.setClassResolver(javaClassResolver); 314 javaSupertypeResolver.setSemanticServices(javaSemanticServices); 315 javaSupertypeResolver.setTrace(bindingTrace); 316 javaSupertypeResolver.setTypeTransformer(javaTypeTransformer); 317 318 javaFunctionResolver.setAnnotationResolver(javaAnnotationResolver); 319 javaFunctionResolver.setParameterResolver(javaValueParameterResolver); 320 javaFunctionResolver.setSignatureResolver(javaSignatureResolver); 321 javaFunctionResolver.setTrace(bindingTrace); 322 javaFunctionResolver.setTypeTransformer(javaTypeTransformer); 323 324 javaValueParameterResolver.setTypeTransformer(javaTypeTransformer); 325 326 javaSignatureResolver.setJavaSemanticServices(javaSemanticServices); 327 328 javaNamespaceResolver.setJavaSemanticServices(javaSemanticServices); 329 javaNamespaceResolver.setPsiClassFinder(psiClassFinder); 330 javaNamespaceResolver.setTrace(bindingTrace); 331 332 javaConstructorResolver.setTrace(bindingTrace); 333 javaConstructorResolver.setTypeTransformer(javaTypeTransformer); 334 javaConstructorResolver.setValueParameterResolver(javaValueParameterResolver); 335 336 javaInnerClassResolver.setClassResolver(javaClassResolver); 337 338 javaPropertyResolver.setAnnotationResolver(javaAnnotationResolver); 339 javaPropertyResolver.setJavaSignatureResolver(javaSignatureResolver); 340 javaPropertyResolver.setSemanticServices(javaSemanticServices); 341 javaPropertyResolver.setTrace(bindingTrace); 342 343 psiClassFinder.initialize(); 344 345 } 346 347 @PreDestroy 348 public void destroy() { 349 } 350 351 public TopDownAnalyzer getTopDownAnalyzer() { 352 return this.topDownAnalyzer; 353 } 354 355 public TopDownAnalysisContext getTopDownAnalysisContext() { 356 return this.topDownAnalysisContext; 357 } 358 359 public BodyResolver getBodyResolver() { 360 return this.bodyResolver; 361 } 362 363 public ControlFlowAnalyzer getControlFlowAnalyzer() { 364 return this.controlFlowAnalyzer; 365 } 366 367 public DeclarationsChecker getDeclarationsChecker() { 368 return this.declarationsChecker; 369 } 370 371 public DescriptorResolver getDescriptorResolver() { 372 return this.descriptorResolver; 373 } 374 375 public Project getProject() { 376 return this.project; 377 } 378 379 public TopDownAnalysisParameters getTopDownAnalysisParameters() { 380 return this.topDownAnalysisParameters; 381 } 382 383 public BindingTrace getBindingTrace() { 384 return this.bindingTrace; 385 } 386 387 public ModuleDescriptorImpl getModuleDescriptor() { 388 return this.moduleDescriptor; 389 } 390 391 public JavaBridgeConfiguration getJavaBridgeConfiguration() { 392 return this.javaBridgeConfiguration; 393 } 394 395 public NamespaceFactoryImpl getNamespaceFactory() { 396 return this.namespaceFactory; 397 } 398 399}