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.descriptors.ModuleDescriptor;
022 import org.jetbrains.jet.lang.resolve.java.JavaBridgeConfiguration;
023 import org.jetbrains.jet.lang.resolve.java.JavaSemanticServices;
024 import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
025 import org.jetbrains.jet.lang.resolve.java.PsiClassFinderImpl;
026 import org.jetbrains.jet.lang.resolve.java.provider.PsiDeclarationProviderFactory;
027 import org.jetbrains.jet.lang.resolve.java.JavaTypeTransformer;
028 import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassResolver;
029 import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationResolver;
030 import org.jetbrains.jet.lang.resolve.java.resolver.JavaCompileTimeConstResolver;
031 import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassObjectResolver;
032 import org.jetbrains.jet.lang.resolve.java.resolver.JavaSupertypeResolver;
033 import org.jetbrains.jet.lang.resolve.java.resolver.JavaFunctionResolver;
034 import org.jetbrains.jet.lang.resolve.java.resolver.JavaValueParameterResolver;
035 import org.jetbrains.jet.lang.resolve.java.resolver.JavaSignatureResolver;
036 import org.jetbrains.jet.lang.resolve.java.resolver.JavaNamespaceResolver;
037 import org.jetbrains.jet.lang.resolve.java.resolver.JavaConstructorResolver;
038 import org.jetbrains.jet.lang.resolve.java.resolver.JavaInnerClassResolver;
039 import org.jetbrains.jet.lang.resolve.java.resolver.JavaPropertyResolver;
040 import org.jetbrains.annotations.NotNull;
041 import javax.annotation.PreDestroy;
042
043 /* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */
044 public class InjectorForJavaDescriptorResolver {
045
046 private final Project project;
047 private final BindingTrace bindingTrace;
048 private final ModuleDescriptor moduleDescriptor;
049 private JavaBridgeConfiguration javaBridgeConfiguration;
050 private JavaSemanticServices javaSemanticServices;
051 private JavaDescriptorResolver javaDescriptorResolver;
052 private PsiClassFinderImpl psiClassFinder;
053 private PsiDeclarationProviderFactory psiDeclarationProviderFactory;
054 private JavaTypeTransformer javaTypeTransformer;
055 private JavaClassResolver javaClassResolver;
056 private JavaAnnotationResolver javaAnnotationResolver;
057 private JavaCompileTimeConstResolver javaCompileTimeConstResolver;
058 private JavaClassObjectResolver javaClassObjectResolver;
059 private JavaSupertypeResolver javaSupertypeResolver;
060 private JavaFunctionResolver javaFunctionResolver;
061 private JavaValueParameterResolver javaValueParameterResolver;
062 private JavaSignatureResolver javaSignatureResolver;
063 private JavaNamespaceResolver javaNamespaceResolver;
064 private JavaConstructorResolver javaConstructorResolver;
065 private JavaInnerClassResolver javaInnerClassResolver;
066 private JavaPropertyResolver javaPropertyResolver;
067
068 public InjectorForJavaDescriptorResolver(
069 @NotNull Project project,
070 @NotNull BindingTrace bindingTrace,
071 @NotNull ModuleDescriptor moduleDescriptor
072 ) {
073 this.project = project;
074 this.bindingTrace = bindingTrace;
075 this.moduleDescriptor = moduleDescriptor;
076 this.javaBridgeConfiguration = new JavaBridgeConfiguration();
077 this.javaSemanticServices = new JavaSemanticServices();
078 this.javaDescriptorResolver = new JavaDescriptorResolver();
079 this.psiClassFinder = new PsiClassFinderImpl();
080 this.psiDeclarationProviderFactory = new PsiDeclarationProviderFactory(getPsiClassFinder());
081 this.javaTypeTransformer = new JavaTypeTransformer();
082 this.javaClassResolver = new JavaClassResolver();
083 this.javaAnnotationResolver = new JavaAnnotationResolver();
084 this.javaCompileTimeConstResolver = new JavaCompileTimeConstResolver();
085 this.javaClassObjectResolver = new JavaClassObjectResolver();
086 this.javaSupertypeResolver = new JavaSupertypeResolver();
087 this.javaFunctionResolver = new JavaFunctionResolver();
088 this.javaValueParameterResolver = new JavaValueParameterResolver();
089 this.javaSignatureResolver = new JavaSignatureResolver();
090 this.javaNamespaceResolver = new JavaNamespaceResolver();
091 this.javaConstructorResolver = new JavaConstructorResolver();
092 this.javaInnerClassResolver = new JavaInnerClassResolver();
093 this.javaPropertyResolver = new JavaPropertyResolver();
094
095 this.javaBridgeConfiguration.setJavaSemanticServices(javaSemanticServices);
096
097 this.javaSemanticServices.setDescriptorResolver(javaDescriptorResolver);
098 this.javaSemanticServices.setPsiClassFinder(psiClassFinder);
099 this.javaSemanticServices.setPsiDeclarationProviderFactory(psiDeclarationProviderFactory);
100 this.javaSemanticServices.setTrace(bindingTrace);
101 this.javaSemanticServices.setTypeTransformer(javaTypeTransformer);
102
103 this.javaDescriptorResolver.setClassResolver(javaClassResolver);
104 this.javaDescriptorResolver.setConstructorResolver(javaConstructorResolver);
105 this.javaDescriptorResolver.setFunctionResolver(javaFunctionResolver);
106 this.javaDescriptorResolver.setInnerClassResolver(javaInnerClassResolver);
107 this.javaDescriptorResolver.setNamespaceResolver(javaNamespaceResolver);
108 this.javaDescriptorResolver.setPropertiesResolver(javaPropertyResolver);
109
110 this.psiClassFinder.setProject(project);
111
112 javaTypeTransformer.setJavaSemanticServices(javaSemanticServices);
113 javaTypeTransformer.setResolver(javaDescriptorResolver);
114
115 javaClassResolver.setAnnotationResolver(javaAnnotationResolver);
116 javaClassResolver.setClassObjectResolver(javaClassObjectResolver);
117 javaClassResolver.setFunctionResolver(javaFunctionResolver);
118 javaClassResolver.setNamespaceResolver(javaNamespaceResolver);
119 javaClassResolver.setPsiClassFinder(psiClassFinder);
120 javaClassResolver.setSemanticServices(javaSemanticServices);
121 javaClassResolver.setSignatureResolver(javaSignatureResolver);
122 javaClassResolver.setSupertypesResolver(javaSupertypeResolver);
123 javaClassResolver.setTrace(bindingTrace);
124
125 javaAnnotationResolver.setClassResolver(javaClassResolver);
126 javaAnnotationResolver.setCompileTimeConstResolver(javaCompileTimeConstResolver);
127
128 javaCompileTimeConstResolver.setAnnotationResolver(javaAnnotationResolver);
129 javaCompileTimeConstResolver.setClassResolver(javaClassResolver);
130
131 javaClassObjectResolver.setSemanticServices(javaSemanticServices);
132 javaClassObjectResolver.setSupertypesResolver(javaSupertypeResolver);
133 javaClassObjectResolver.setTrace(bindingTrace);
134
135 javaSupertypeResolver.setClassResolver(javaClassResolver);
136 javaSupertypeResolver.setSemanticServices(javaSemanticServices);
137 javaSupertypeResolver.setTrace(bindingTrace);
138 javaSupertypeResolver.setTypeTransformer(javaTypeTransformer);
139
140 javaFunctionResolver.setAnnotationResolver(javaAnnotationResolver);
141 javaFunctionResolver.setParameterResolver(javaValueParameterResolver);
142 javaFunctionResolver.setSignatureResolver(javaSignatureResolver);
143 javaFunctionResolver.setTrace(bindingTrace);
144 javaFunctionResolver.setTypeTransformer(javaTypeTransformer);
145
146 javaValueParameterResolver.setTypeTransformer(javaTypeTransformer);
147
148 javaSignatureResolver.setJavaSemanticServices(javaSemanticServices);
149
150 javaNamespaceResolver.setJavaSemanticServices(javaSemanticServices);
151 javaNamespaceResolver.setPsiClassFinder(psiClassFinder);
152 javaNamespaceResolver.setTrace(bindingTrace);
153
154 javaConstructorResolver.setTrace(bindingTrace);
155 javaConstructorResolver.setTypeTransformer(javaTypeTransformer);
156 javaConstructorResolver.setValueParameterResolver(javaValueParameterResolver);
157
158 javaInnerClassResolver.setClassResolver(javaClassResolver);
159
160 javaPropertyResolver.setAnnotationResolver(javaAnnotationResolver);
161 javaPropertyResolver.setJavaSignatureResolver(javaSignatureResolver);
162 javaPropertyResolver.setSemanticServices(javaSemanticServices);
163 javaPropertyResolver.setTrace(bindingTrace);
164
165 psiClassFinder.initialize();
166
167 }
168
169 @PreDestroy
170 public void destroy() {
171 }
172
173 public Project getProject() {
174 return this.project;
175 }
176
177 public BindingTrace getBindingTrace() {
178 return this.bindingTrace;
179 }
180
181 public ModuleDescriptor getModuleDescriptor() {
182 return this.moduleDescriptor;
183 }
184
185 public JavaBridgeConfiguration getJavaBridgeConfiguration() {
186 return this.javaBridgeConfiguration;
187 }
188
189 public JavaSemanticServices getJavaSemanticServices() {
190 return this.javaSemanticServices;
191 }
192
193 public JavaDescriptorResolver getJavaDescriptorResolver() {
194 return this.javaDescriptorResolver;
195 }
196
197 public PsiClassFinderImpl getPsiClassFinder() {
198 return this.psiClassFinder;
199 }
200
201 }