001    /*
002     * Copyright 2010-2015 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.kotlin.types.expressions;
018    
019    import org.jetbrains.annotations.NotNull;
020    import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
021    import org.jetbrains.kotlin.context.GlobalContext;
022    import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap;
023    import org.jetbrains.kotlin.resolve.*;
024    import org.jetbrains.kotlin.resolve.calls.CallExpressionResolver;
025    import org.jetbrains.kotlin.resolve.calls.CallResolver;
026    import org.jetbrains.kotlin.resolve.validation.SymbolUsageValidator;
027    import org.jetbrains.kotlin.types.DynamicTypesSettings;
028    import org.jetbrains.kotlin.builtins.ReflectionTypes;
029    
030    import javax.inject.Inject;
031    
032    public class ExpressionTypingComponents {
033        /*package*/ GlobalContext globalContext;
034        /*package*/ ExpressionTypingServices expressionTypingServices;
035        /*package*/ CallResolver callResolver;
036        /*package*/ PlatformToKotlinClassMap platformToKotlinClassMap;
037        /*package*/ ControlStructureTypingUtils controlStructureTypingUtils;
038        /*package*/ ForLoopConventionsChecker forLoopConventionsChecker;
039        /*package*/ ReflectionTypes reflectionTypes;
040        /*package*/ AdditionalCheckerProvider additionalCheckerProvider;
041        /*package*/ SymbolUsageValidator symbolUsageValidator;
042        /*package*/ DynamicTypesSettings dynamicTypesSettings;
043        /*package*/ KotlinBuiltIns builtIns;
044        /*package*/ LocalClassifierAnalyzer localClassifierAnalyzer;
045        /*package*/ FunctionDescriptorResolver functionDescriptorResolver;
046        /*package*/ CallExpressionResolver callExpressionResolver;
047        /*package*/ DescriptorResolver descriptorResolver;
048        /*package*/ TypeResolver typeResolver;
049        /*package*/ AnnotationResolver annotationResolver;
050        /*package*/ ValueParameterResolver valueParameterResolver;
051        /*package*/ MultiDeclarationResolver multiDeclarationResolver;
052    
053        @Inject
054        public void setGlobalContext(@NotNull GlobalContext globalContext) {
055            this.globalContext = globalContext;
056        }
057    
058        @Inject
059        public void setExpressionTypingServices(@NotNull ExpressionTypingServices expressionTypingServices) {
060            this.expressionTypingServices = expressionTypingServices;
061        }
062    
063        @Inject
064        public void setCallResolver(@NotNull CallResolver callResolver) {
065            this.callResolver = callResolver;
066        }
067    
068        @Inject
069        public void setPlatformToKotlinClassMap(@NotNull PlatformToKotlinClassMap platformToKotlinClassMap) {
070            this.platformToKotlinClassMap = platformToKotlinClassMap;
071        }
072    
073        @Inject
074        public void setControlStructureTypingUtils(@NotNull ControlStructureTypingUtils controlStructureTypingUtils) {
075            this.controlStructureTypingUtils = controlStructureTypingUtils;
076        }
077    
078        @Inject
079        public void setForLoopConventionsChecker(@NotNull ForLoopConventionsChecker forLoopConventionsChecker) {
080            this.forLoopConventionsChecker = forLoopConventionsChecker;
081        }
082    
083        @Inject
084        public void setReflectionTypes(@NotNull ReflectionTypes reflectionTypes) {
085            this.reflectionTypes = reflectionTypes;
086        }
087    
088        @Inject
089        public void setAdditionalCheckerProvider(AdditionalCheckerProvider additionalCheckerProvider) {
090            this.additionalCheckerProvider = additionalCheckerProvider;
091        }
092    
093        @Inject
094        public void setSymbolUsageValidator(SymbolUsageValidator symbolUsageValidator) {
095            this.symbolUsageValidator = symbolUsageValidator;
096        }
097    
098        @Inject
099        public void setDynamicTypesSettings(@NotNull DynamicTypesSettings dynamicTypesSettings) {
100            this.dynamicTypesSettings = dynamicTypesSettings;
101        }
102    
103        @Inject
104        public void setBuiltIns(@NotNull KotlinBuiltIns builtIns) {
105            this.builtIns = builtIns;
106        }
107    
108        @Inject
109        public void setLocalClassifierAnalyzer(@NotNull LocalClassifierAnalyzer localClassifierAnalyzer) {
110            this.localClassifierAnalyzer = localClassifierAnalyzer;
111        }
112    
113        @Inject
114        public void setFunctionDescriptorResolver(FunctionDescriptorResolver functionDescriptorResolver) {
115            this.functionDescriptorResolver = functionDescriptorResolver;
116        }
117    
118        @Inject
119        public void setCallExpressionResolver(CallExpressionResolver callExpressionResolver) {
120            this.callExpressionResolver = callExpressionResolver;
121        }
122    
123        @Inject
124        public void setDescriptorResolver(DescriptorResolver descriptorResolver) {
125            this.descriptorResolver = descriptorResolver;
126        }
127    
128        @Inject
129        public void setTypeResolver(TypeResolver typeResolver) {
130            this.typeResolver = typeResolver;
131        }
132    
133        @Inject
134        public void setAnnotationResolver(AnnotationResolver annotationResolver) {
135            this.annotationResolver = annotationResolver;
136        }
137    
138        @Inject
139        public void setValueParameterResolver(ValueParameterResolver valueParameterResolver) {
140            this.valueParameterResolver = valueParameterResolver;
141        }
142    
143        @Inject
144        public void setMultiDeclarationResolver(MultiDeclarationResolver multiDeclarationResolver) {
145            this.multiDeclarationResolver = multiDeclarationResolver;
146        }
147    
148        @NotNull
149        public ForLoopConventionsChecker getForLoopConventionsChecker() {
150            return forLoopConventionsChecker;
151        }
152    
153        @NotNull
154        public AdditionalCheckerProvider getAdditionalCheckerProvider() {
155            return additionalCheckerProvider;
156        }
157    }