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.results.OverloadResolutionResultsImpl;
007    
008    import java.util.List;
009    
010    public class CompositeExtension implements CallResolverExtension {
011    
012        private final List<CallResolverExtension> extensions;
013    
014        public CompositeExtension(@NotNull List<CallResolverExtension> extensions) {
015            this.extensions = extensions;
016        }
017    
018        @Override
019        public <F extends CallableDescriptor> void run(
020                @NotNull OverloadResolutionResultsImpl<F> results,
021                @NotNull BasicCallResolutionContext context
022        ) {
023            for (CallResolverExtension resolverExtension : extensions) {
024                resolverExtension.run(results, context);
025            }
026        }
027    }