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