001 /* 002 * Copyright 2010-2014 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 com.intellij.openapi.project.Project; 020 import org.jetbrains.jet.context.GlobalContext; 021 import org.jetbrains.jet.storage.StorageManager; 022 import org.jetbrains.jet.lang.resolve.BindingTrace; 023 import org.jetbrains.jet.lang.descriptors.impl.ModuleDescriptorImpl; 024 import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; 025 import org.jetbrains.jet.lang.PlatformToKotlinClassMap; 026 import org.jetbrains.jet.lang.resolve.lazy.declarations.DeclarationProviderFactory; 027 import org.jetbrains.jet.lang.resolve.lazy.ResolveSession; 028 import com.intellij.psi.search.GlobalSearchScope; 029 import org.jetbrains.jet.lang.resolve.java.lazy.ModuleClassResolver; 030 import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver; 031 import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder; 032 import org.jetbrains.jet.lang.resolve.java.JavaClassFinderImpl; 033 import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedExternalSignatureResolver; 034 import org.jetbrains.jet.lang.resolve.java.resolver.LazyResolveBasedCache; 035 import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedErrorReporter; 036 import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedMethodSignatureChecker; 037 import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedExternalAnnotationResolver; 038 import org.jetbrains.jet.lang.resolve.java.structure.impl.JavaPropertyInitializerEvaluatorImpl; 039 import org.jetbrains.jet.lang.resolve.java.sam.SamConversionResolverImpl; 040 import org.jetbrains.jet.lang.resolve.java.resolver.JavaSourceElementFactoryImpl; 041 import org.jetbrains.jet.lang.resolve.java.JavaFlexibleTypeCapabilitiesProvider; 042 import org.jetbrains.jet.context.LazyResolveToken; 043 import org.jetbrains.jet.lang.resolve.java.JavaLazyAnalyzerPostConstruct; 044 import org.jetbrains.jet.lang.resolve.kotlin.JavaDeclarationCheckerProvider; 045 import org.jetbrains.jet.lang.resolve.AnnotationResolver; 046 import org.jetbrains.jet.lang.resolve.calls.CallResolver; 047 import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver; 048 import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices; 049 import org.jetbrains.jet.lang.types.expressions.ExpressionTypingComponents; 050 import org.jetbrains.jet.lang.types.expressions.ControlStructureTypingUtils; 051 import org.jetbrains.jet.lang.types.DynamicTypesSettings; 052 import org.jetbrains.jet.lang.types.expressions.ExpressionTypingUtils; 053 import org.jetbrains.jet.lang.types.expressions.ForLoopConventionsChecker; 054 import org.jetbrains.jet.lang.reflect.ReflectionTypes; 055 import org.jetbrains.jet.lang.resolve.calls.CallExpressionResolver; 056 import org.jetbrains.jet.lang.resolve.DescriptorResolver; 057 import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver; 058 import org.jetbrains.jet.lang.resolve.TypeResolver; 059 import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver; 060 import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider; 061 import org.jetbrains.jet.lang.resolve.PartialBodyResolveProvider; 062 import org.jetbrains.jet.lang.resolve.calls.CallCompleter; 063 import org.jetbrains.jet.lang.resolve.calls.CandidateResolver; 064 import org.jetbrains.jet.lang.resolve.calls.tasks.TaskPrioritizer; 065 import org.jetbrains.jet.lang.psi.JetImportsFactory; 066 import org.jetbrains.jet.lang.resolve.lazy.ScopeProvider; 067 import org.jetbrains.jet.lang.resolve.lazy.ScopeProvider.AdditionalFileScopeProvider; 068 import org.jetbrains.jet.lang.resolve.ScriptBodyResolver; 069 import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaPackageFragmentProvider; 070 import org.jetbrains.jet.lang.resolve.java.lazy.GlobalJavaResolverContext; 071 import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver; 072 import org.jetbrains.jet.lang.resolve.kotlin.DeserializationComponentsForJava; 073 import org.jetbrains.jet.lang.resolve.kotlin.JavaClassDataFinder; 074 import org.jetbrains.jet.lang.resolve.kotlin.BinaryClassAnnotationAndConstantLoaderImpl; 075 import org.jetbrains.annotations.NotNull; 076 import javax.annotation.PreDestroy; 077 078 /* This file is generated by org.jetbrains.jet.generators.injectors.InjectorsPackage. DO NOT EDIT! */ 079 @SuppressWarnings("all") 080 public class InjectorForLazyResolveWithJava { 081 082 private final Project project; 083 private final GlobalContext globalContext; 084 private final StorageManager storageManager; 085 private final BindingTrace bindingTrace; 086 private final ModuleDescriptorImpl module; 087 private final KotlinBuiltIns kotlinBuiltIns; 088 private final PlatformToKotlinClassMap platformToKotlinClassMap; 089 private final DeclarationProviderFactory declarationProviderFactory; 090 private final ResolveSession resolveSession; 091 private final GlobalSearchScope moduleContentScope; 092 private final ModuleClassResolver moduleClassResolver; 093 private final JavaDescriptorResolver javaDescriptorResolver; 094 private final VirtualFileFinder virtualFileFinder; 095 private final JavaClassFinderImpl javaClassFinder; 096 private final TraceBasedExternalSignatureResolver traceBasedExternalSignatureResolver; 097 private final LazyResolveBasedCache lazyResolveBasedCache; 098 private final TraceBasedErrorReporter traceBasedErrorReporter; 099 private final PsiBasedMethodSignatureChecker psiBasedMethodSignatureChecker; 100 private final PsiBasedExternalAnnotationResolver psiBasedExternalAnnotationResolver; 101 private final JavaPropertyInitializerEvaluatorImpl javaPropertyInitializerEvaluator; 102 private final SamConversionResolverImpl samConversionResolver; 103 private final JavaSourceElementFactoryImpl javaSourceElementFactory; 104 private final JavaFlexibleTypeCapabilitiesProvider javaFlexibleTypeCapabilitiesProvider; 105 private final LazyResolveToken lazyResolveToken; 106 private final JavaLazyAnalyzerPostConstruct javaLazyAnalyzerPostConstruct; 107 private final JavaDeclarationCheckerProvider javaDeclarationCheckerProvider; 108 private final AnnotationResolver annotationResolver; 109 private final CallResolver callResolver; 110 private final ArgumentTypeResolver argumentTypeResolver; 111 private final ExpressionTypingServices expressionTypingServices; 112 private final ExpressionTypingComponents expressionTypingComponents; 113 private final ControlStructureTypingUtils controlStructureTypingUtils; 114 private final DynamicTypesSettings dynamicTypesSettings; 115 private final ExpressionTypingUtils expressionTypingUtils; 116 private final ForLoopConventionsChecker forLoopConventionsChecker; 117 private final ReflectionTypes reflectionTypes; 118 private final CallExpressionResolver callExpressionResolver; 119 private final DescriptorResolver descriptorResolver; 120 private final DelegatedPropertyResolver delegatedPropertyResolver; 121 private final TypeResolver typeResolver; 122 private final QualifiedExpressionResolver qualifiedExpressionResolver; 123 private final CallResolverExtensionProvider callResolverExtensionProvider; 124 private final PartialBodyResolveProvider partialBodyResolveProvider; 125 private final CallCompleter callCompleter; 126 private final CandidateResolver candidateResolver; 127 private final TaskPrioritizer taskPrioritizer; 128 private final JetImportsFactory jetImportsFactory; 129 private final ScopeProvider scopeProvider; 130 private final AdditionalFileScopeProvider additionalFileScopeProvider; 131 private final ScriptBodyResolver scriptBodyResolver; 132 private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider; 133 private final GlobalJavaResolverContext globalJavaResolverContext; 134 private final DeserializedDescriptorResolver deserializedDescriptorResolver; 135 private final DeserializationComponentsForJava deserializationComponentsForJava; 136 private final JavaClassDataFinder javaClassDataFinder; 137 private final BinaryClassAnnotationAndConstantLoaderImpl binaryClassAnnotationAndConstantLoader; 138 139 public InjectorForLazyResolveWithJava( 140 @NotNull Project project, 141 @NotNull GlobalContext globalContext, 142 @NotNull BindingTrace bindingTrace, 143 @NotNull ModuleDescriptorImpl module, 144 @NotNull DeclarationProviderFactory declarationProviderFactory, 145 @NotNull GlobalSearchScope moduleContentScope, 146 @NotNull ModuleClassResolver moduleClassResolver 147 ) { 148 this.project = project; 149 this.globalContext = globalContext; 150 this.storageManager = globalContext.getStorageManager(); 151 this.bindingTrace = bindingTrace; 152 this.module = module; 153 this.kotlinBuiltIns = module.getBuiltIns(); 154 this.platformToKotlinClassMap = module.getPlatformToKotlinClassMap(); 155 this.declarationProviderFactory = declarationProviderFactory; 156 this.resolveSession = new ResolveSession(project, globalContext, module, declarationProviderFactory, bindingTrace); 157 this.moduleContentScope = moduleContentScope; 158 this.moduleClassResolver = moduleClassResolver; 159 this.javaClassFinder = new JavaClassFinderImpl(); 160 this.virtualFileFinder = org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinderFactory.SERVICE.getInstance(project).create(moduleContentScope); 161 this.traceBasedErrorReporter = new TraceBasedErrorReporter(); 162 this.deserializedDescriptorResolver = new DeserializedDescriptorResolver(traceBasedErrorReporter); 163 this.psiBasedExternalAnnotationResolver = new PsiBasedExternalAnnotationResolver(); 164 this.traceBasedExternalSignatureResolver = new TraceBasedExternalSignatureResolver(); 165 this.psiBasedMethodSignatureChecker = new PsiBasedMethodSignatureChecker(); 166 this.lazyResolveBasedCache = new LazyResolveBasedCache(); 167 this.javaPropertyInitializerEvaluator = new JavaPropertyInitializerEvaluatorImpl(); 168 this.samConversionResolver = SamConversionResolverImpl.INSTANCE$; 169 this.javaSourceElementFactory = new JavaSourceElementFactoryImpl(); 170 this.globalJavaResolverContext = new GlobalJavaResolverContext(storageManager, javaClassFinder, virtualFileFinder, deserializedDescriptorResolver, psiBasedExternalAnnotationResolver, traceBasedExternalSignatureResolver, traceBasedErrorReporter, psiBasedMethodSignatureChecker, lazyResolveBasedCache, javaPropertyInitializerEvaluator, samConversionResolver, javaSourceElementFactory, moduleClassResolver); 171 this.lazyJavaPackageFragmentProvider = new LazyJavaPackageFragmentProvider(globalJavaResolverContext, module); 172 this.javaDescriptorResolver = new JavaDescriptorResolver(lazyJavaPackageFragmentProvider, module); 173 this.javaFlexibleTypeCapabilitiesProvider = new JavaFlexibleTypeCapabilitiesProvider(); 174 this.lazyResolveToken = new LazyResolveToken(); 175 this.javaLazyAnalyzerPostConstruct = new JavaLazyAnalyzerPostConstruct(); 176 this.javaDeclarationCheckerProvider = JavaDeclarationCheckerProvider.INSTANCE$; 177 this.annotationResolver = new AnnotationResolver(); 178 this.callResolver = new CallResolver(); 179 this.argumentTypeResolver = new ArgumentTypeResolver(); 180 this.expressionTypingComponents = new ExpressionTypingComponents(); 181 this.expressionTypingServices = new ExpressionTypingServices(expressionTypingComponents); 182 this.controlStructureTypingUtils = new ControlStructureTypingUtils(expressionTypingServices); 183 this.dynamicTypesSettings = new DynamicTypesSettings(); 184 this.expressionTypingUtils = new ExpressionTypingUtils(expressionTypingServices, callResolver, kotlinBuiltIns); 185 this.forLoopConventionsChecker = new ForLoopConventionsChecker(); 186 this.reflectionTypes = new ReflectionTypes(module); 187 this.callExpressionResolver = new CallExpressionResolver(); 188 this.descriptorResolver = new DescriptorResolver(); 189 this.delegatedPropertyResolver = new DelegatedPropertyResolver(); 190 this.qualifiedExpressionResolver = new QualifiedExpressionResolver(); 191 this.typeResolver = new TypeResolver(annotationResolver, qualifiedExpressionResolver, module, javaFlexibleTypeCapabilitiesProvider, storageManager, lazyResolveToken, dynamicTypesSettings); 192 this.callResolverExtensionProvider = new CallResolverExtensionProvider(); 193 this.partialBodyResolveProvider = new PartialBodyResolveProvider(); 194 this.candidateResolver = new CandidateResolver(); 195 this.callCompleter = new CallCompleter(argumentTypeResolver, candidateResolver); 196 this.taskPrioritizer = new TaskPrioritizer(storageManager); 197 this.jetImportsFactory = new JetImportsFactory(); 198 this.scopeProvider = new ScopeProvider(getResolveSession()); 199 this.additionalFileScopeProvider = new AdditionalFileScopeProvider(); 200 this.scriptBodyResolver = new ScriptBodyResolver(); 201 this.javaClassDataFinder = new JavaClassDataFinder(virtualFileFinder, deserializedDescriptorResolver); 202 this.binaryClassAnnotationAndConstantLoader = new BinaryClassAnnotationAndConstantLoaderImpl(module, storageManager, virtualFileFinder, traceBasedErrorReporter); 203 this.deserializationComponentsForJava = new DeserializationComponentsForJava(storageManager, module, javaClassDataFinder, binaryClassAnnotationAndConstantLoader, lazyJavaPackageFragmentProvider); 204 205 this.resolveSession.setAnnotationResolve(annotationResolver); 206 this.resolveSession.setDescriptorResolver(descriptorResolver); 207 this.resolveSession.setJetImportFactory(jetImportsFactory); 208 this.resolveSession.setQualifiedExpressionResolver(qualifiedExpressionResolver); 209 this.resolveSession.setScopeProvider(scopeProvider); 210 this.resolveSession.setScriptBodyResolver(scriptBodyResolver); 211 this.resolveSession.setTypeResolver(typeResolver); 212 213 javaClassFinder.setComponentPostConstruct(javaLazyAnalyzerPostConstruct); 214 javaClassFinder.setProject(project); 215 javaClassFinder.setScope(moduleContentScope); 216 217 traceBasedExternalSignatureResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver); 218 traceBasedExternalSignatureResolver.setProject(project); 219 traceBasedExternalSignatureResolver.setTrace(bindingTrace); 220 221 lazyResolveBasedCache.setSession(resolveSession); 222 223 traceBasedErrorReporter.setTrace(bindingTrace); 224 225 psiBasedMethodSignatureChecker.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver); 226 psiBasedMethodSignatureChecker.setExternalSignatureResolver(traceBasedExternalSignatureResolver); 227 228 javaLazyAnalyzerPostConstruct.setCodeAnalyzer(resolveSession); 229 javaLazyAnalyzerPostConstruct.setProject(project); 230 javaLazyAnalyzerPostConstruct.setTrace(bindingTrace); 231 232 annotationResolver.setCallResolver(callResolver); 233 annotationResolver.setStorageManager(storageManager); 234 annotationResolver.setTypeResolver(typeResolver); 235 236 callResolver.setArgumentTypeResolver(argumentTypeResolver); 237 callResolver.setCallCompleter(callCompleter); 238 callResolver.setCandidateResolver(candidateResolver); 239 callResolver.setExpressionTypingServices(expressionTypingServices); 240 callResolver.setTaskPrioritizer(taskPrioritizer); 241 callResolver.setTypeResolver(typeResolver); 242 243 argumentTypeResolver.setBuiltIns(kotlinBuiltIns); 244 argumentTypeResolver.setExpressionTypingServices(expressionTypingServices); 245 argumentTypeResolver.setTypeResolver(typeResolver); 246 247 expressionTypingServices.setAnnotationResolver(annotationResolver); 248 expressionTypingServices.setBuiltIns(kotlinBuiltIns); 249 expressionTypingServices.setCallExpressionResolver(callExpressionResolver); 250 expressionTypingServices.setCallResolver(callResolver); 251 expressionTypingServices.setDescriptorResolver(descriptorResolver); 252 expressionTypingServices.setExtensionProvider(callResolverExtensionProvider); 253 expressionTypingServices.setPartialBodyResolveProvider(partialBodyResolveProvider); 254 expressionTypingServices.setProject(project); 255 expressionTypingServices.setTypeResolver(typeResolver); 256 257 expressionTypingComponents.setAdditionalCheckerProvider(javaDeclarationCheckerProvider); 258 expressionTypingComponents.setBuiltIns(kotlinBuiltIns); 259 expressionTypingComponents.setCallResolver(callResolver); 260 expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils); 261 expressionTypingComponents.setDynamicTypesSettings(dynamicTypesSettings); 262 expressionTypingComponents.setExpressionTypingServices(expressionTypingServices); 263 expressionTypingComponents.setExpressionTypingUtils(expressionTypingUtils); 264 expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker); 265 expressionTypingComponents.setGlobalContext(globalContext); 266 expressionTypingComponents.setPlatformToKotlinClassMap(platformToKotlinClassMap); 267 expressionTypingComponents.setReflectionTypes(reflectionTypes); 268 269 forLoopConventionsChecker.setBuiltIns(kotlinBuiltIns); 270 forLoopConventionsChecker.setExpressionTypingServices(expressionTypingServices); 271 forLoopConventionsChecker.setExpressionTypingUtils(expressionTypingUtils); 272 forLoopConventionsChecker.setProject(project); 273 274 callExpressionResolver.setExpressionTypingServices(expressionTypingServices); 275 276 descriptorResolver.setAnnotationResolver(annotationResolver); 277 descriptorResolver.setBuiltIns(kotlinBuiltIns); 278 descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver); 279 descriptorResolver.setExpressionTypingServices(expressionTypingServices); 280 descriptorResolver.setStorageManager(storageManager); 281 descriptorResolver.setTypeResolver(typeResolver); 282 283 delegatedPropertyResolver.setBuiltIns(kotlinBuiltIns); 284 delegatedPropertyResolver.setCallResolver(callResolver); 285 delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices); 286 287 candidateResolver.setArgumentTypeResolver(argumentTypeResolver); 288 289 jetImportsFactory.setProject(project); 290 291 scopeProvider.setAdditionalFileScopesProvider(additionalFileScopeProvider); 292 293 scriptBodyResolver.setExpressionTypingServices(expressionTypingServices); 294 295 deserializedDescriptorResolver.setComponents(deserializationComponentsForJava); 296 297 javaClassFinder.initialize(); 298 299 javaLazyAnalyzerPostConstruct.postCreate(); 300 301 } 302 303 @PreDestroy 304 public void destroy() { 305 } 306 307 public ResolveSession getResolveSession() { 308 return this.resolveSession; 309 } 310 311 public JavaDescriptorResolver getJavaDescriptorResolver() { 312 return this.javaDescriptorResolver; 313 } 314 315 }