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.GlobalContextImpl; 021 import org.jetbrains.jet.storage.LockBasedStorageManager; 022 import org.jetbrains.jet.lang.resolve.lazy.declarations.DeclarationProviderFactory; 023 import org.jetbrains.jet.lang.resolve.BindingTrace; 024 import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl; 025 import org.jetbrains.jet.lang.PlatformToKotlinClassMap; 026 import org.jetbrains.jet.lang.resolve.lazy.ResolveSession; 027 import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver; 028 import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder; 029 import org.jetbrains.jet.descriptors.serialization.descriptors.MemberFilter; 030 import org.jetbrains.jet.lang.resolve.java.JavaClassFinderImpl; 031 import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedExternalSignatureResolver; 032 import org.jetbrains.jet.lang.resolve.java.resolver.LazyResolveBasedCache; 033 import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedErrorReporter; 034 import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedMethodSignatureChecker; 035 import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedExternalAnnotationResolver; 036 import org.jetbrains.jet.lang.resolve.java.structure.impl.JavaPropertyInitializerEvaluatorImpl; 037 import org.jetbrains.jet.lang.resolve.AnnotationResolver; 038 import org.jetbrains.jet.lang.resolve.calls.CallResolver; 039 import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver; 040 import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices; 041 import org.jetbrains.jet.lang.types.expressions.ExpressionTypingComponents; 042 import org.jetbrains.jet.lang.types.expressions.ControlStructureTypingUtils; 043 import org.jetbrains.jet.lang.types.expressions.ExpressionTypingUtils; 044 import org.jetbrains.jet.lang.types.expressions.ForLoopConventionsChecker; 045 import org.jetbrains.jet.lang.reflect.ReflectionTypes; 046 import org.jetbrains.jet.lang.resolve.calls.CallExpressionResolver; 047 import org.jetbrains.jet.lang.resolve.DescriptorResolver; 048 import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver; 049 import org.jetbrains.jet.lang.resolve.TypeResolver; 050 import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver; 051 import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider; 052 import org.jetbrains.jet.lang.resolve.calls.CandidateResolver; 053 import org.jetbrains.jet.lang.psi.JetImportsFactory; 054 import org.jetbrains.jet.lang.resolve.lazy.ScopeProvider; 055 import org.jetbrains.jet.lang.resolve.ScriptBodyResolver; 056 import org.jetbrains.jet.lang.resolve.ScriptParameterResolver; 057 import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaPackageFragmentProvider; 058 import org.jetbrains.jet.lang.resolve.java.lazy.GlobalJavaResolverContext; 059 import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver; 060 import org.jetbrains.jet.lang.resolve.kotlin.DescriptorDeserializers; 061 import org.jetbrains.jet.lang.resolve.kotlin.AnnotationDescriptorDeserializer; 062 import org.jetbrains.jet.lang.resolve.kotlin.DescriptorDeserializersStorage; 063 import org.jetbrains.jet.lang.resolve.kotlin.ConstantDescriptorDeserializer; 064 import org.jetbrains.annotations.NotNull; 065 import javax.annotation.PreDestroy; 066 067 /* This file is generated by org.jetbrains.jet.generators.injectors.InjectorsPackage. DO NOT EDIT! */ 068 @SuppressWarnings("ALL") 069 public class InjectorForLazyResolveWithJava { 070 071 private final Project project; 072 private final GlobalContextImpl globalContext; 073 private final LockBasedStorageManager lockBasedStorageManager; 074 private final DeclarationProviderFactory declarationProviderFactory; 075 private final BindingTrace bindingTrace; 076 private final ModuleDescriptorImpl module; 077 private final PlatformToKotlinClassMap platformToKotlinClassMap; 078 private final ResolveSession resolveSession; 079 private final JavaDescriptorResolver javaDescriptorResolver; 080 private final VirtualFileFinder virtualFileFinder; 081 private final MemberFilter memberFilter; 082 private final JavaClassFinderImpl javaClassFinder; 083 private final TraceBasedExternalSignatureResolver traceBasedExternalSignatureResolver; 084 private final LazyResolveBasedCache lazyResolveBasedCache; 085 private final TraceBasedErrorReporter traceBasedErrorReporter; 086 private final PsiBasedMethodSignatureChecker psiBasedMethodSignatureChecker; 087 private final PsiBasedExternalAnnotationResolver psiBasedExternalAnnotationResolver; 088 private final JavaPropertyInitializerEvaluatorImpl javaPropertyInitializerEvaluator; 089 private final AnnotationResolver annotationResolver; 090 private final CallResolver callResolver; 091 private final ArgumentTypeResolver argumentTypeResolver; 092 private final ExpressionTypingServices expressionTypingServices; 093 private final ExpressionTypingComponents expressionTypingComponents; 094 private final ControlStructureTypingUtils controlStructureTypingUtils; 095 private final ExpressionTypingUtils expressionTypingUtils; 096 private final ForLoopConventionsChecker forLoopConventionsChecker; 097 private final ReflectionTypes reflectionTypes; 098 private final CallExpressionResolver callExpressionResolver; 099 private final DescriptorResolver descriptorResolver; 100 private final DelegatedPropertyResolver delegatedPropertyResolver; 101 private final TypeResolver typeResolver; 102 private final QualifiedExpressionResolver qualifiedExpressionResolver; 103 private final CallResolverExtensionProvider callResolverExtensionProvider; 104 private final CandidateResolver candidateResolver; 105 private final JetImportsFactory jetImportsFactory; 106 private final ScopeProvider scopeProvider; 107 private final ScriptBodyResolver scriptBodyResolver; 108 private final ScriptParameterResolver scriptParameterResolver; 109 private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider; 110 private final GlobalJavaResolverContext globalJavaResolverContext; 111 private final DeserializedDescriptorResolver deserializedDescriptorResolver; 112 private final DescriptorDeserializers descriptorDeserializers; 113 private final AnnotationDescriptorDeserializer annotationDescriptorDeserializer; 114 private final DescriptorDeserializersStorage descriptorDeserializersStorage; 115 private final ConstantDescriptorDeserializer constantDescriptorDeserializer; 116 117 public InjectorForLazyResolveWithJava( 118 @NotNull Project project, 119 @NotNull GlobalContextImpl globalContext, 120 @NotNull DeclarationProviderFactory declarationProviderFactory, 121 @NotNull BindingTrace bindingTrace 122 ) { 123 this.project = project; 124 this.globalContext = globalContext; 125 this.lockBasedStorageManager = globalContext.getStorageManager(); 126 this.declarationProviderFactory = declarationProviderFactory; 127 this.bindingTrace = bindingTrace; 128 this.module = org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM.createJavaModule("<fake-jdr-module>"); 129 this.platformToKotlinClassMap = module.getPlatformToKotlinClassMap(); 130 this.resolveSession = new ResolveSession(project, globalContext, getModule(), declarationProviderFactory, bindingTrace); 131 this.javaClassFinder = new JavaClassFinderImpl(); 132 this.virtualFileFinder = org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder.SERVICE.getInstance(project); 133 this.deserializedDescriptorResolver = new DeserializedDescriptorResolver(); 134 this.psiBasedExternalAnnotationResolver = new PsiBasedExternalAnnotationResolver(); 135 this.traceBasedExternalSignatureResolver = new TraceBasedExternalSignatureResolver(); 136 this.traceBasedErrorReporter = new TraceBasedErrorReporter(); 137 this.psiBasedMethodSignatureChecker = new PsiBasedMethodSignatureChecker(); 138 this.lazyResolveBasedCache = new LazyResolveBasedCache(); 139 this.javaPropertyInitializerEvaluator = new JavaPropertyInitializerEvaluatorImpl(); 140 this.globalJavaResolverContext = new GlobalJavaResolverContext(lockBasedStorageManager, javaClassFinder, virtualFileFinder, deserializedDescriptorResolver, psiBasedExternalAnnotationResolver, traceBasedExternalSignatureResolver, traceBasedErrorReporter, psiBasedMethodSignatureChecker, lazyResolveBasedCache, javaPropertyInitializerEvaluator); 141 this.lazyJavaPackageFragmentProvider = new LazyJavaPackageFragmentProvider(globalJavaResolverContext, getModule()); 142 this.javaDescriptorResolver = new JavaDescriptorResolver(lazyJavaPackageFragmentProvider, getModule()); 143 this.memberFilter = org.jetbrains.jet.descriptors.serialization.descriptors.MemberFilter.ALWAYS_TRUE; 144 this.annotationResolver = new AnnotationResolver(); 145 this.callResolver = new CallResolver(); 146 this.argumentTypeResolver = new ArgumentTypeResolver(); 147 this.expressionTypingComponents = new ExpressionTypingComponents(); 148 this.expressionTypingServices = new ExpressionTypingServices(expressionTypingComponents); 149 this.controlStructureTypingUtils = new ControlStructureTypingUtils(expressionTypingServices); 150 this.expressionTypingUtils = new ExpressionTypingUtils(expressionTypingServices, callResolver); 151 this.forLoopConventionsChecker = new ForLoopConventionsChecker(); 152 this.reflectionTypes = new ReflectionTypes(getModule()); 153 this.callExpressionResolver = new CallExpressionResolver(); 154 this.descriptorResolver = new DescriptorResolver(); 155 this.delegatedPropertyResolver = new DelegatedPropertyResolver(); 156 this.typeResolver = new TypeResolver(); 157 this.qualifiedExpressionResolver = new QualifiedExpressionResolver(); 158 this.callResolverExtensionProvider = new CallResolverExtensionProvider(); 159 this.candidateResolver = new CandidateResolver(); 160 this.jetImportsFactory = new JetImportsFactory(); 161 this.scopeProvider = new ScopeProvider(getResolveSession()); 162 this.scriptBodyResolver = new ScriptBodyResolver(); 163 this.scriptParameterResolver = new ScriptParameterResolver(); 164 this.descriptorDeserializers = new DescriptorDeserializers(); 165 this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer(); 166 this.descriptorDeserializersStorage = new DescriptorDeserializersStorage(lockBasedStorageManager); 167 this.constantDescriptorDeserializer = new ConstantDescriptorDeserializer(); 168 169 this.resolveSession.setAnnotationResolve(annotationResolver); 170 this.resolveSession.setDescriptorResolver(descriptorResolver); 171 this.resolveSession.setJetImportFactory(jetImportsFactory); 172 this.resolveSession.setQualifiedExpressionResolver(qualifiedExpressionResolver); 173 this.resolveSession.setScopeProvider(scopeProvider); 174 this.resolveSession.setScriptBodyResolver(scriptBodyResolver); 175 this.resolveSession.setScriptParameterResolver(scriptParameterResolver); 176 this.resolveSession.setTypeResolver(typeResolver); 177 178 javaClassFinder.setProject(project); 179 180 traceBasedExternalSignatureResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver); 181 traceBasedExternalSignatureResolver.setProject(project); 182 traceBasedExternalSignatureResolver.setTrace(bindingTrace); 183 184 lazyResolveBasedCache.setSession(resolveSession); 185 186 traceBasedErrorReporter.setTrace(bindingTrace); 187 188 psiBasedMethodSignatureChecker.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver); 189 psiBasedMethodSignatureChecker.setExternalSignatureResolver(traceBasedExternalSignatureResolver); 190 191 annotationResolver.setCallResolver(callResolver); 192 annotationResolver.setStorageManager(lockBasedStorageManager); 193 annotationResolver.setTypeResolver(typeResolver); 194 195 callResolver.setArgumentTypeResolver(argumentTypeResolver); 196 callResolver.setCandidateResolver(candidateResolver); 197 callResolver.setExpressionTypingServices(expressionTypingServices); 198 callResolver.setTypeResolver(typeResolver); 199 200 argumentTypeResolver.setExpressionTypingServices(expressionTypingServices); 201 argumentTypeResolver.setTypeResolver(typeResolver); 202 203 expressionTypingServices.setAnnotationResolver(annotationResolver); 204 expressionTypingServices.setCallExpressionResolver(callExpressionResolver); 205 expressionTypingServices.setCallResolver(callResolver); 206 expressionTypingServices.setDescriptorResolver(descriptorResolver); 207 expressionTypingServices.setExtensionProvider(callResolverExtensionProvider); 208 expressionTypingServices.setProject(project); 209 expressionTypingServices.setTypeResolver(typeResolver); 210 211 expressionTypingComponents.setCallResolver(callResolver); 212 expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils); 213 expressionTypingComponents.setExpressionTypingServices(expressionTypingServices); 214 expressionTypingComponents.setExpressionTypingUtils(expressionTypingUtils); 215 expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker); 216 expressionTypingComponents.setGlobalContext(globalContext); 217 expressionTypingComponents.setPlatformToKotlinClassMap(platformToKotlinClassMap); 218 expressionTypingComponents.setReflectionTypes(reflectionTypes); 219 220 forLoopConventionsChecker.setExpressionTypingServices(expressionTypingServices); 221 forLoopConventionsChecker.setExpressionTypingUtils(expressionTypingUtils); 222 forLoopConventionsChecker.setProject(project); 223 224 callExpressionResolver.setExpressionTypingServices(expressionTypingServices); 225 226 descriptorResolver.setAnnotationResolver(annotationResolver); 227 descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver); 228 descriptorResolver.setExpressionTypingServices(expressionTypingServices); 229 descriptorResolver.setStorageManager(lockBasedStorageManager); 230 descriptorResolver.setTypeResolver(typeResolver); 231 232 delegatedPropertyResolver.setCallResolver(callResolver); 233 delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices); 234 235 typeResolver.setAnnotationResolver(annotationResolver); 236 typeResolver.setModuleDescriptor(module); 237 typeResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver); 238 239 candidateResolver.setArgumentTypeResolver(argumentTypeResolver); 240 241 jetImportsFactory.setProject(project); 242 243 scriptBodyResolver.setExpressionTypingServices(expressionTypingServices); 244 245 scriptParameterResolver.setDependencyClassByQualifiedNameResolver(javaDescriptorResolver); 246 247 deserializedDescriptorResolver.setDeserializers(descriptorDeserializers); 248 deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter); 249 deserializedDescriptorResolver.setJavaDescriptorResolver(javaDescriptorResolver); 250 deserializedDescriptorResolver.setJavaPackageFragmentProvider(lazyJavaPackageFragmentProvider); 251 deserializedDescriptorResolver.setMemberFilter(memberFilter); 252 deserializedDescriptorResolver.setStorageManager(lockBasedStorageManager); 253 254 descriptorDeserializers.setAnnotationDescriptorDeserializer(annotationDescriptorDeserializer); 255 descriptorDeserializers.setConstantDescriptorDeserializer(constantDescriptorDeserializer); 256 257 annotationDescriptorDeserializer.setClassResolver(javaDescriptorResolver); 258 annotationDescriptorDeserializer.setErrorReporter(traceBasedErrorReporter); 259 annotationDescriptorDeserializer.setKotlinClassFinder(virtualFileFinder); 260 annotationDescriptorDeserializer.setStorage(descriptorDeserializersStorage); 261 262 descriptorDeserializersStorage.setClassResolver(javaDescriptorResolver); 263 descriptorDeserializersStorage.setErrorReporter(traceBasedErrorReporter); 264 265 constantDescriptorDeserializer.setClassResolver(javaDescriptorResolver); 266 constantDescriptorDeserializer.setErrorReporter(traceBasedErrorReporter); 267 constantDescriptorDeserializer.setKotlinClassFinder(virtualFileFinder); 268 constantDescriptorDeserializer.setStorage(descriptorDeserializersStorage); 269 270 javaClassFinder.initialize(); 271 272 } 273 274 @PreDestroy 275 public void destroy() { 276 } 277 278 public ModuleDescriptorImpl getModule() { 279 return this.module; 280 } 281 282 public ResolveSession getResolveSession() { 283 return this.resolveSession; 284 } 285 286 public JavaDescriptorResolver getJavaDescriptorResolver() { 287 return this.javaDescriptorResolver; 288 } 289 290 }