[ONOS-5241] Add CLI to VPLS

Change-Id: I2d90a6370babea0538eb063b21ca29b49deb425f
diff --git a/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/VplsAddIfaceCmdCompleter.java b/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/VplsAddIfaceCmdCompleter.java
new file mode 100644
index 0000000..9534635
--- /dev/null
+++ b/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/VplsAddIfaceCmdCompleter.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.vpls.cli.completer;
+
+import com.google.common.collect.Lists;
+import org.onosproject.cli.AbstractChoicesCompleter;
+import org.onosproject.vpls.config.VplsConfigurationService;
+
+import java.util.List;
+import static org.onosproject.cli.AbstractShellCommand.get;
+
+/**
+ * Completer for "vpls-add-inf" command.
+ */
+public class VplsAddIfaceCmdCompleter extends AbstractChoicesCompleter {
+    @Override
+    protected List<String> choices() {
+        VplsConfigurationService vplsConfigService =
+                get(VplsConfigurationService.class);
+
+        return Lists.newArrayList(vplsConfigService.getAllVpls());
+    }
+}
diff --git a/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/VplsDelCommandCompleter.java b/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/VplsDelCommandCompleter.java
new file mode 100644
index 0000000..9c6c061
--- /dev/null
+++ b/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/VplsDelCommandCompleter.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.vpls.cli.completer;
+
+import com.google.common.collect.Lists;
+import org.onosproject.cli.AbstractChoicesCompleter;
+import org.onosproject.vpls.config.VplsConfigurationService;
+
+import java.util.List;
+
+import static org.onosproject.cli.AbstractShellCommand.get;
+
+/**
+ * Completer for "vpls-del" command.
+ */
+public class VplsDelCommandCompleter extends AbstractChoicesCompleter {
+
+    @Override
+    protected List<String> choices() {
+        VplsConfigurationService vplsConfigService =
+                get(VplsConfigurationService.class);
+        return Lists.newArrayList(vplsConfigService.getAllVpls());
+    }
+}
diff --git a/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/VplsDelIfaceCommandCompleter.java b/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/VplsDelIfaceCommandCompleter.java
new file mode 100644
index 0000000..81a1583
--- /dev/null
+++ b/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/VplsDelIfaceCommandCompleter.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.vpls.cli.completer;
+
+import org.onosproject.cli.AbstractChoicesCompleter;
+import org.onosproject.incubator.net.intf.Interface;
+import org.onosproject.vpls.config.VplsConfigurationService;
+
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import static org.onosproject.cli.AbstractShellCommand.get;
+
+/**
+ * Completer for vpls-del-iface command.
+ */
+public class VplsDelIfaceCommandCompleter extends AbstractChoicesCompleter {
+
+    @Override
+    protected List<String> choices() {
+        VplsConfigurationService vplsConfigService =
+                get(VplsConfigurationService.class);
+        Set<Interface> ifaces = vplsConfigService.getAllInterfaces();
+        return ifaces.stream().map(Interface::name).collect(Collectors.toList());
+    }
+}
diff --git a/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/VplsShowCommandCompleter.java b/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/VplsShowCommandCompleter.java
new file mode 100644
index 0000000..75ce663
--- /dev/null
+++ b/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/VplsShowCommandCompleter.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.vpls.cli.completer;
+
+import com.google.common.collect.Lists;
+import org.onosproject.cli.AbstractChoicesCompleter;
+import org.onosproject.vpls.config.VplsConfigurationService;
+
+import java.util.List;
+
+import static org.onosproject.cli.AbstractShellCommand.get;
+
+/**
+ * Completer for vpls-show command.
+ */
+public class VplsShowCommandCompleter extends AbstractChoicesCompleter {
+
+    @Override
+    protected List<String> choices() {
+        VplsConfigurationService vplsConfigService =
+                get(VplsConfigurationService.class);
+        return Lists.newArrayList(vplsConfigService.getAllVpls());
+    }
+}
diff --git a/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/package-info.java b/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/package-info.java
new file mode 100644
index 0000000..f58cd33
--- /dev/null
+++ b/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/package-info.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Implementation completers for VPLS CLI.
+ */
+package org.onosproject.vpls.cli.completer;
\ No newline at end of file