blob: 29994c7a6b3b569d2a26eae58efd3554be3d36d4 [file] [log] [blame]
Ray Milkeya058c732014-10-08 13:52:34 -07001package org.onlab.onos.cli.net;
2
3import java.util.List;
4import java.util.SortedSet;
5
6import org.apache.karaf.shell.console.Completer;
7import org.apache.karaf.shell.console.completer.StringsCompleter;
8import org.onlab.onos.cli.AbstractShellCommand;
9import org.onlab.onos.net.Device;
10import org.onlab.onos.net.Port;
11import org.onlab.onos.net.device.DeviceService;
12
13/**
14 * ConnectPoint completer.
15 */
16public class ConnectPointCompleter implements Completer {
17 @Override
18 public int complete(String buffer, int cursor, List<String> candidates) {
19 // Delegate string completer
20 StringsCompleter delegate = new StringsCompleter();
21
22 // Fetch our service and feed it's offerings to the string completer
23 DeviceService service = AbstractShellCommand.get(DeviceService.class);
24
25 // Generate the device ID/port number identifiers
26 for (Device device : service.getDevices()) {
27 SortedSet<String> strings = delegate.getStrings();
28
29 for (Port port : service.getPorts(device.id())) {
30 strings.add(device.id().toString() + "/" + port.number());
31 }
32 }
33
34 // Now let the completer do the work for figuring out what to offer.
35 return delegate.complete(buffer, cursor, candidates);
36 }
37
38}