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 org.jetbrains.jet.lang.resolve.java.JavaSemanticServices;
020    import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
021    import org.jetbrains.jet.lang.resolve.BindingTrace;
022    import org.jetbrains.jet.lang.resolve.java.JavaBridgeConfiguration;
023    import org.jetbrains.jet.lang.resolve.java.PsiClassFinderImpl;
024    import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
025    import com.intellij.openapi.project.Project;
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 InjectorForJavaSemanticServices {
045        
046        private final JavaSemanticServices javaSemanticServices;
047        private final JavaDescriptorResolver javaDescriptorResolver;
048        private final BindingTrace bindingTrace;
049        private final JavaBridgeConfiguration javaBridgeConfiguration;
050        private final PsiClassFinderImpl psiClassFinder;
051        private final ModuleDescriptorImpl moduleDescriptor;
052        private final Project project;
053        private final PsiDeclarationProviderFactory psiDeclarationProviderFactory;
054        private final JavaTypeTransformer javaTypeTransformer;
055        private final JavaClassResolver javaClassResolver;
056        private final JavaAnnotationResolver javaAnnotationResolver;
057        private final JavaCompileTimeConstResolver javaCompileTimeConstResolver;
058        private final JavaClassObjectResolver javaClassObjectResolver;
059        private final JavaSupertypeResolver javaSupertypeResolver;
060        private final JavaFunctionResolver javaFunctionResolver;
061        private final JavaValueParameterResolver javaValueParameterResolver;
062        private final JavaSignatureResolver javaSignatureResolver;
063        private final JavaNamespaceResolver javaNamespaceResolver;
064        private final JavaConstructorResolver javaConstructorResolver;
065        private final JavaInnerClassResolver javaInnerClassResolver;
066        private final JavaPropertyResolver javaPropertyResolver;
067        
068        public InjectorForJavaSemanticServices(
069            @NotNull Project project
070        ) {
071            this.javaSemanticServices = new JavaSemanticServices();
072            this.javaDescriptorResolver = new JavaDescriptorResolver();
073            this.bindingTrace = new org.jetbrains.jet.lang.resolve.BindingTraceContext();
074            this.javaBridgeConfiguration = new JavaBridgeConfiguration();
075            this.psiClassFinder = new PsiClassFinderImpl();
076            this.moduleDescriptor = new org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl(org.jetbrains.jet.lang.resolve.name.Name.special("<dummy>"), org.jetbrains.jet.lang.resolve.java.JavaBridgeConfiguration.ALL_JAVA_IMPORTS, org.jetbrains.jet.lang.resolve.java.JavaToKotlinClassMap.getInstance());
077            this.project = project;
078            this.psiDeclarationProviderFactory = new PsiDeclarationProviderFactory(getPsiClassFinder());
079            this.javaTypeTransformer = new JavaTypeTransformer();
080            this.javaClassResolver = new JavaClassResolver();
081            this.javaAnnotationResolver = new JavaAnnotationResolver();
082            this.javaCompileTimeConstResolver = new JavaCompileTimeConstResolver();
083            this.javaClassObjectResolver = new JavaClassObjectResolver();
084            this.javaSupertypeResolver = new JavaSupertypeResolver();
085            this.javaFunctionResolver = new JavaFunctionResolver();
086            this.javaValueParameterResolver = new JavaValueParameterResolver();
087            this.javaSignatureResolver = new JavaSignatureResolver();
088            this.javaNamespaceResolver = new JavaNamespaceResolver();
089            this.javaConstructorResolver = new JavaConstructorResolver();
090            this.javaInnerClassResolver = new JavaInnerClassResolver();
091            this.javaPropertyResolver = new JavaPropertyResolver();
092    
093            this.javaSemanticServices.setDescriptorResolver(javaDescriptorResolver);
094            this.javaSemanticServices.setPsiClassFinder(psiClassFinder);
095            this.javaSemanticServices.setPsiDeclarationProviderFactory(psiDeclarationProviderFactory);
096            this.javaSemanticServices.setTrace(bindingTrace);
097            this.javaSemanticServices.setTypeTransformer(javaTypeTransformer);
098    
099            this.javaDescriptorResolver.setClassResolver(javaClassResolver);
100            this.javaDescriptorResolver.setConstructorResolver(javaConstructorResolver);
101            this.javaDescriptorResolver.setFunctionResolver(javaFunctionResolver);
102            this.javaDescriptorResolver.setInnerClassResolver(javaInnerClassResolver);
103            this.javaDescriptorResolver.setNamespaceResolver(javaNamespaceResolver);
104            this.javaDescriptorResolver.setPropertiesResolver(javaPropertyResolver);
105    
106            javaBridgeConfiguration.setJavaSemanticServices(javaSemanticServices);
107    
108            this.psiClassFinder.setProject(project);
109    
110            moduleDescriptor.setModuleConfiguration(javaBridgeConfiguration);
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 JavaSemanticServices getJavaSemanticServices() {
174            return this.javaSemanticServices;
175        }
176        
177        public JavaDescriptorResolver getJavaDescriptorResolver() {
178            return this.javaDescriptorResolver;
179        }
180        
181        public BindingTrace getBindingTrace() {
182            return this.bindingTrace;
183        }
184        
185        public PsiClassFinderImpl getPsiClassFinder() {
186            return this.psiClassFinder;
187        }
188        
189        public Project getProject() {
190            return this.project;
191        }
192        
193    }