// 
// Decompiled by Procyon v0.6.0
// 

package org.jline.reader.impl.completer;

import java.util.Objects;
import org.jline.reader.Candidate;
import java.util.List;
import org.jline.reader.ParsedLine;
import org.jline.reader.LineReader;
import java.util.Arrays;
import java.util.Collection;
import org.jline.reader.Completer;

public class AggregateCompleter implements Completer
{
    private final Collection<Completer> completers;
    
    public AggregateCompleter(final Completer... completers) {
        this(Arrays.asList(completers));
    }
    
    public AggregateCompleter(final Collection<Completer> completers) {
        assert completers != null;
        this.completers = completers;
    }
    
    public Collection<Completer> getCompleters() {
        return this.completers;
    }
    
    @Override
    public void complete(final LineReader reader, final ParsedLine line, final List<Candidate> candidates) {
        Objects.requireNonNull(line);
        Objects.requireNonNull(candidates);
        this.completers.forEach(c -> c.complete(reader, line, candidates));
    }
    
    @Override
    public String toString() {
        return this.getClass().getSimpleName() + "{completers=" + this.completers + '}';
    }
}
