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
017package org.jetbrains.jet.di;
018
019import org.jetbrains.jet.lang.resolve.java.JavaSemanticServices;
020import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
021import org.jetbrains.jet.lang.resolve.BindingTrace;
022import org.jetbrains.jet.lang.resolve.java.JavaBridgeConfiguration;
023import org.jetbrains.jet.lang.resolve.java.PsiClassFinderImpl;
024import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
025import com.intellij.openapi.project.Project;
026import org.jetbrains.jet.lang.resolve.java.provider.PsiDeclarationProviderFactory;
027import org.jetbrains.jet.lang.resolve.java.JavaTypeTransformer;
028import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassResolver;
029import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationResolver;
030import org.jetbrains.jet.lang.resolve.java.resolver.JavaCompileTimeConstResolver;
031import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassObjectResolver;
032import org.jetbrains.jet.lang.resolve.java.resolver.JavaSupertypeResolver;
033import org.jetbrains.jet.lang.resolve.java.resolver.JavaFunctionResolver;
034import org.jetbrains.jet.lang.resolve.java.resolver.JavaValueParameterResolver;
035import org.jetbrains.jet.lang.resolve.java.resolver.JavaSignatureResolver;
036import org.jetbrains.jet.lang.resolve.java.resolver.JavaNamespaceResolver;
037import org.jetbrains.jet.lang.resolve.java.resolver.JavaConstructorResolver;
038import org.jetbrains.jet.lang.resolve.java.resolver.JavaInnerClassResolver;
039import org.jetbrains.jet.lang.resolve.java.resolver.JavaPropertyResolver;
040import org.jetbrains.annotations.NotNull;
041import javax.annotation.PreDestroy;
042
043/* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */
044public class InjectorForJavaSemanticServices {
045    
046    private JavaSemanticServices javaSemanticServices;
047    private JavaDescriptorResolver javaDescriptorResolver;
048    private BindingTrace bindingTrace;
049    private JavaBridgeConfiguration javaBridgeConfiguration;
050    private PsiClassFinderImpl psiClassFinder;
051    private ModuleDescriptorImpl moduleDescriptor;
052    private final Project project;
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 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}