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 com.intellij.openapi.project.Project;
020 import org.jetbrains.jet.lang.resolve.BindingTrace;
021 import org.jetbrains.jet.lang.resolve.java.JavaClassFinderImpl;
022 import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedExternalSignatureResolver;
023 import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedJavaResolverCache;
024 import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedErrorReporter;
025 import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedMethodSignatureChecker;
026 import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedExternalAnnotationResolver;
027 import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
028 import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileKotlinClassFinder;
029 import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder;
030 import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationResolver;
031 import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationArgumentResolver;
032 import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassResolver;
033 import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver;
034 import org.jetbrains.jet.lang.resolve.kotlin.AnnotationDescriptorDeserializer;
035 import org.jetbrains.jet.lang.resolve.java.resolver.JavaNamespaceResolver;
036 import org.jetbrains.jet.lang.resolve.java.resolver.JavaMemberResolver;
037 import org.jetbrains.jet.lang.resolve.java.resolver.JavaConstructorResolver;
038 import org.jetbrains.jet.lang.resolve.java.resolver.JavaTypeTransformer;
039 import org.jetbrains.jet.lang.resolve.java.resolver.JavaValueParameterResolver;
040 import org.jetbrains.jet.lang.resolve.java.resolver.JavaFunctionResolver;
041 import org.jetbrains.jet.lang.resolve.java.resolver.JavaTypeParameterResolver;
042 import org.jetbrains.jet.lang.resolve.java.resolver.JavaPropertyResolver;
043 import org.jetbrains.jet.lang.resolve.java.resolver.JavaSupertypeResolver;
044 import org.jetbrains.annotations.NotNull;
045 import javax.annotation.PreDestroy;
046
047 /* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */
048 public class InjectorForJavaDescriptorResolver {
049
050 private final Project project;
051 private final BindingTrace bindingTrace;
052 private final JavaClassFinderImpl javaClassFinder;
053 private final TraceBasedExternalSignatureResolver traceBasedExternalSignatureResolver;
054 private final TraceBasedJavaResolverCache traceBasedJavaResolverCache;
055 private final TraceBasedErrorReporter traceBasedErrorReporter;
056 private final PsiBasedMethodSignatureChecker psiBasedMethodSignatureChecker;
057 private final PsiBasedExternalAnnotationResolver psiBasedExternalAnnotationResolver;
058 private final JavaDescriptorResolver javaDescriptorResolver;
059 private final VirtualFileKotlinClassFinder virtualFileKotlinClassFinder;
060 private final VirtualFileFinder virtualFileFinder;
061 private final JavaAnnotationResolver javaAnnotationResolver;
062 private final JavaAnnotationArgumentResolver javaAnnotationArgumentResolver;
063 private final JavaClassResolver javaClassResolver;
064 private final DeserializedDescriptorResolver deserializedDescriptorResolver;
065 private final AnnotationDescriptorDeserializer annotationDescriptorDeserializer;
066 private final JavaNamespaceResolver javaNamespaceResolver;
067 private final JavaMemberResolver javaMemberResolver;
068 private final JavaConstructorResolver javaConstructorResolver;
069 private final JavaTypeTransformer javaTypeTransformer;
070 private final JavaValueParameterResolver javaValueParameterResolver;
071 private final JavaFunctionResolver javaFunctionResolver;
072 private final JavaTypeParameterResolver javaTypeParameterResolver;
073 private final JavaPropertyResolver javaPropertyResolver;
074 private final JavaSupertypeResolver javaSupertypeResolver;
075
076 public InjectorForJavaDescriptorResolver(
077 @NotNull Project project,
078 @NotNull BindingTrace bindingTrace
079 ) {
080 this.project = project;
081 this.bindingTrace = bindingTrace;
082 this.javaClassFinder = new JavaClassFinderImpl();
083 this.traceBasedExternalSignatureResolver = new TraceBasedExternalSignatureResolver();
084 this.traceBasedJavaResolverCache = new TraceBasedJavaResolverCache();
085 this.traceBasedErrorReporter = new TraceBasedErrorReporter();
086 this.psiBasedMethodSignatureChecker = new PsiBasedMethodSignatureChecker();
087 this.psiBasedExternalAnnotationResolver = new PsiBasedExternalAnnotationResolver();
088 this.javaDescriptorResolver = new JavaDescriptorResolver();
089 this.virtualFileKotlinClassFinder = new VirtualFileKotlinClassFinder();
090 this.virtualFileFinder = com.intellij.openapi.components.ServiceManager.getService(project, VirtualFileFinder.class);
091 this.javaAnnotationResolver = new JavaAnnotationResolver();
092 this.javaAnnotationArgumentResolver = new JavaAnnotationArgumentResolver();
093 this.javaClassResolver = new JavaClassResolver();
094 this.deserializedDescriptorResolver = new DeserializedDescriptorResolver();
095 this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer();
096 this.javaNamespaceResolver = new JavaNamespaceResolver();
097 this.javaMemberResolver = new JavaMemberResolver();
098 this.javaConstructorResolver = new JavaConstructorResolver();
099 this.javaTypeTransformer = new JavaTypeTransformer();
100 this.javaValueParameterResolver = new JavaValueParameterResolver();
101 this.javaFunctionResolver = new JavaFunctionResolver();
102 this.javaTypeParameterResolver = new JavaTypeParameterResolver();
103 this.javaPropertyResolver = new JavaPropertyResolver();
104 this.javaSupertypeResolver = new JavaSupertypeResolver();
105
106 this.javaClassFinder.setProject(project);
107
108 traceBasedExternalSignatureResolver.setAnnotationResolver(javaAnnotationResolver);
109 traceBasedExternalSignatureResolver.setTrace(bindingTrace);
110
111 traceBasedJavaResolverCache.setTrace(bindingTrace);
112
113 traceBasedErrorReporter.setTrace(bindingTrace);
114
115 psiBasedMethodSignatureChecker.setAnnotationResolver(javaAnnotationResolver);
116 psiBasedMethodSignatureChecker.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
117
118 this.javaDescriptorResolver.setClassResolver(javaClassResolver);
119 this.javaDescriptorResolver.setNamespaceResolver(javaNamespaceResolver);
120
121 virtualFileKotlinClassFinder.setVirtualFileFinder(virtualFileFinder);
122
123 javaAnnotationResolver.setArgumentResolver(javaAnnotationArgumentResolver);
124 javaAnnotationResolver.setClassResolver(javaClassResolver);
125 javaAnnotationResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
126
127 javaAnnotationArgumentResolver.setAnnotationResolver(javaAnnotationResolver);
128 javaAnnotationArgumentResolver.setClassResolver(javaClassResolver);
129 javaAnnotationArgumentResolver.setTypeTransformer(javaTypeTransformer);
130
131 javaClassResolver.setAnnotationResolver(javaAnnotationResolver);
132 javaClassResolver.setCache(traceBasedJavaResolverCache);
133 javaClassResolver.setDeserializedDescriptorResolver(deserializedDescriptorResolver);
134 javaClassResolver.setFunctionResolver(javaFunctionResolver);
135 javaClassResolver.setJavaClassFinder(javaClassFinder);
136 javaClassResolver.setKotlinClassFinder(virtualFileKotlinClassFinder);
137 javaClassResolver.setMemberResolver(javaMemberResolver);
138 javaClassResolver.setNamespaceResolver(javaNamespaceResolver);
139 javaClassResolver.setSupertypesResolver(javaSupertypeResolver);
140 javaClassResolver.setTypeParameterResolver(javaTypeParameterResolver);
141
142 deserializedDescriptorResolver.setAnnotationDeserializer(annotationDescriptorDeserializer);
143 deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
144 deserializedDescriptorResolver.setJavaClassResolver(javaClassResolver);
145 deserializedDescriptorResolver.setJavaNamespaceResolver(javaNamespaceResolver);
146
147 annotationDescriptorDeserializer.setErrorReporter(traceBasedErrorReporter);
148 annotationDescriptorDeserializer.setJavaClassResolver(javaClassResolver);
149 annotationDescriptorDeserializer.setKotlinClassFinder(virtualFileKotlinClassFinder);
150
151 javaNamespaceResolver.setCache(traceBasedJavaResolverCache);
152 javaNamespaceResolver.setDeserializedDescriptorResolver(deserializedDescriptorResolver);
153 javaNamespaceResolver.setJavaClassFinder(javaClassFinder);
154 javaNamespaceResolver.setKotlinClassFinder(virtualFileKotlinClassFinder);
155 javaNamespaceResolver.setMemberResolver(javaMemberResolver);
156
157 javaMemberResolver.setClassResolver(javaClassResolver);
158 javaMemberResolver.setConstructorResolver(javaConstructorResolver);
159 javaMemberResolver.setFunctionResolver(javaFunctionResolver);
160 javaMemberResolver.setNamespaceResolver(javaNamespaceResolver);
161 javaMemberResolver.setPropertyResolver(javaPropertyResolver);
162
163 javaConstructorResolver.setCache(traceBasedJavaResolverCache);
164 javaConstructorResolver.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
165 javaConstructorResolver.setTypeTransformer(javaTypeTransformer);
166 javaConstructorResolver.setValueParameterResolver(javaValueParameterResolver);
167
168 javaTypeTransformer.setClassResolver(javaClassResolver);
169
170 javaValueParameterResolver.setAnnotationResolver(javaAnnotationResolver);
171 javaValueParameterResolver.setTypeTransformer(javaTypeTransformer);
172
173 javaFunctionResolver.setAnnotationResolver(javaAnnotationResolver);
174 javaFunctionResolver.setCache(traceBasedJavaResolverCache);
175 javaFunctionResolver.setErrorReporter(traceBasedErrorReporter);
176 javaFunctionResolver.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
177 javaFunctionResolver.setSignatureChecker(psiBasedMethodSignatureChecker);
178 javaFunctionResolver.setTypeParameterResolver(javaTypeParameterResolver);
179 javaFunctionResolver.setTypeTransformer(javaTypeTransformer);
180 javaFunctionResolver.setValueParameterResolver(javaValueParameterResolver);
181
182 javaTypeParameterResolver.setTypeTransformer(javaTypeTransformer);
183
184 javaPropertyResolver.setAnnotationResolver(javaAnnotationResolver);
185 javaPropertyResolver.setCache(traceBasedJavaResolverCache);
186 javaPropertyResolver.setErrorReporter(traceBasedErrorReporter);
187 javaPropertyResolver.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
188 javaPropertyResolver.setTypeTransformer(javaTypeTransformer);
189
190 javaSupertypeResolver.setClassResolver(javaClassResolver);
191 javaSupertypeResolver.setTypeTransformer(javaTypeTransformer);
192
193 javaClassFinder.initialize();
194
195 }
196
197 @PreDestroy
198 public void destroy() {
199 }
200
201 public JavaClassFinderImpl getJavaClassFinder() {
202 return this.javaClassFinder;
203 }
204
205 public JavaDescriptorResolver getJavaDescriptorResolver() {
206 return this.javaDescriptorResolver;
207 }
208
209 }