src/jdk.internal.le/share/classes/jdk/internal/jline/console/completer/AggregateCompleter.java
changeset 52974 ddbd9744a3d5
parent 52973 a659ccd1888d
parent 52961 d67b37917e82
child 52975 35e2bbea78b2
child 53179 760293737af0
--- a/src/jdk.internal.le/share/classes/jdk/internal/jline/console/completer/AggregateCompleter.java	Tue Dec 11 11:45:43 2018 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-/*
- * Copyright (c) 2002-2016, the original author or authors.
- *
- * This software is distributable under the BSD license. See the terms of the
- * BSD license in the documentation provided with this software.
- *
- * http://www.opensource.org/licenses/bsd-license.php
- */
-package jdk.internal.jline.console.completer;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.List;
-
-import static jdk.internal.jline.internal.Preconditions.checkNotNull;
-
-/**
- * Completer which contains multiple completers and aggregates them together.
- *
- * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
- * @since 2.3
- */
-public class AggregateCompleter
-    implements Completer
-{
-    private final List<Completer> completers = new ArrayList<Completer>();
-
-    public AggregateCompleter() {
-        // empty
-    }
-
-    /**
-     * Construct an AggregateCompleter with the given collection of completers.
-     * The completers will be used in the iteration order of the collection.
-     *
-     * @param completers the collection of completers
-     */
-    public AggregateCompleter(final Collection<Completer> completers) {
-        checkNotNull(completers);
-        this.completers.addAll(completers);
-    }
-
-    /**
-     * Construct an AggregateCompleter with the given completers.
-     * The completers will be used in the order given.
-     *
-     * @param completers the completers
-     */
-    public AggregateCompleter(final Completer... completers) {
-        this(Arrays.asList(completers));
-    }
-
-    /**
-     * Retrieve the collection of completers currently being aggregated.
-     *
-     * @return the aggregated completers
-     */
-    public Collection<Completer> getCompleters() {
-        return completers;
-    }
-
-    /**
-     * Perform a completion operation across all aggregated completers.
-     *
-     * @see Completer#complete(String, int, java.util.List)
-     * @return the highest completion return value from all completers
-     */
-    public int complete(final String buffer, final int cursor, final List<CharSequence> candidates) {
-        // buffer could be null
-        checkNotNull(candidates);
-
-        List<Completion> completions = new ArrayList<Completion>(completers.size());
-
-        // Run each completer, saving its completion results
-        int max = -1;
-        for (Completer completer : completers) {
-            Completion completion = new Completion(candidates);
-            completion.complete(completer, buffer, cursor);
-
-            // Compute the max cursor position
-            max = Math.max(max, completion.cursor);
-
-            completions.add(completion);
-        }
-
-        // Append candidates from completions which have the same cursor position as max
-        for (Completion completion : completions) {
-            if (completion.cursor == max) {
-                candidates.addAll(completion.candidates);
-            }
-        }
-
-        return max;
-    }
-
-    /**
-     * @return a string representing the aggregated completers
-     */
-    @Override
-    public String toString() {
-        return getClass().getSimpleName() + "{" +
-            "completers=" + completers +
-            '}';
-    }
-
-    private class Completion
-    {
-        public final List<CharSequence> candidates;
-
-        public int cursor;
-
-        public Completion(final List<CharSequence> candidates) {
-            checkNotNull(candidates);
-            this.candidates = new LinkedList<CharSequence>(candidates);
-        }
-
-        public void complete(final Completer completer, final String buffer, final int cursor) {
-            checkNotNull(completer);
-            this.cursor = completer.complete(buffer, cursor, candidates);
-        }
-    }
-}