001    package org.jetbrains.jet.lang.resolve.calls;
002    
003    import org.jetbrains.annotations.NotNull;
004    import org.jetbrains.jet.lang.descriptors.CallableDescriptor;
005    import org.jetbrains.jet.lang.resolve.calls.context.BasicCallResolutionContext;
006    import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
007    import org.jetbrains.jet.lang.resolve.calls.results.OverloadResolutionResultsImpl;
008    
009    import java.util.List;
010    
011    public class CompositeExtension implements CallResolverExtension {
012    
013        private final List<CallResolverExtension> extensions;
014    
015        public CompositeExtension(@NotNull List<CallResolverExtension> extensions) {
016            this.extensions = extensions;
017        }
018    
019        @Override
020        public <F extends CallableDescriptor> void run(
021                @NotNull ResolvedCall<F> resolvedCall,
022                @NotNull BasicCallResolutionContext context
023        ) {
024            for (CallResolverExtension resolverExtension : extensions) {
025                resolverExtension.run(resolvedCall, context);
026            }
027        }
028    }