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