Refactor of CFM code part 5 - SonarQube recommended code changes

previously:

Refactor of CFM code part 4 - Microsemi driver - updating modules.deps with the move of the driver code
Refactor of CFM code part 3 - Microsemi driver: moved everything out of drivers/microsemi to /drivers/microsemi/ea1000 to make room for future drivers
Refactor of CFM code parti 2 - API: moved everything from incubator/*/src/main/java/org/onosproject/incubator/net/l2monitoring to apps/cfm/*/src/main/java/org/onosproject/incubator/net/l2monitoring - this means that services belonging to l2 monitoring will now only be loaded when cfm app is started
Refactor of CFM code part 1 - NBI: moves the CLI and REST part of the app down a level to an nbi folder for a more consistent approach with other modules

Change-Id: I39b302fd8620f59d34ab41208cbc28765951aad4
diff --git a/apps/cfm/nbi/src/main/java/org/onosproject/cfm/cli/CfmMaDeleteCommand.java b/apps/cfm/nbi/src/main/java/org/onosproject/cfm/cli/CfmMaDeleteCommand.java
index 4228b78..b28a35e 100644
--- a/apps/cfm/nbi/src/main/java/org/onosproject/cfm/cli/CfmMaDeleteCommand.java
+++ b/apps/cfm/nbi/src/main/java/org/onosproject/cfm/cli/CfmMaDeleteCommand.java
@@ -18,17 +18,8 @@
 import org.apache.karaf.shell.commands.Argument;
 import org.apache.karaf.shell.commands.Command;
 import org.onosproject.cli.AbstractShellCommand;
-import org.onosproject.incubator.net.l2monitoring.cfm.identifier.MaId2Octet;
-import org.onosproject.incubator.net.l2monitoring.cfm.identifier.MaIdCharStr;
-import org.onosproject.incubator.net.l2monitoring.cfm.identifier.MaIdIccY1731;
-import org.onosproject.incubator.net.l2monitoring.cfm.identifier.MaIdPrimaryVid;
-import org.onosproject.incubator.net.l2monitoring.cfm.identifier.MaIdRfc2685VpnId;
 import org.onosproject.incubator.net.l2monitoring.cfm.identifier.MaIdShort;
 import org.onosproject.incubator.net.l2monitoring.cfm.identifier.MdId;
-import org.onosproject.incubator.net.l2monitoring.cfm.identifier.MdIdCharStr;
-import org.onosproject.incubator.net.l2monitoring.cfm.identifier.MdIdDomainName;
-import org.onosproject.incubator.net.l2monitoring.cfm.identifier.MdIdMacUint;
-import org.onosproject.incubator.net.l2monitoring.cfm.identifier.MdIdNone;
 import org.onosproject.incubator.net.l2monitoring.cfm.service.CfmConfigException;
 import org.onosproject.incubator.net.l2monitoring.cfm.service.CfmMdService;
 
@@ -39,58 +30,26 @@
         description = "Delete a CFM Maintenance Association and its children.")
 public class CfmMaDeleteCommand extends AbstractShellCommand {
 
-    @Argument(index = 0, name = "name",
+    private static final int MA_NAME_PARTS_COUNT = 4;
+    @Argument(name = "name",
             description = "Maintenance Domain name and type (in brackets) " +
                     "and the Maintenance Association name and type (in brackets)",
-            required = true, multiValued = false)
-    String name = null;
+            required = true)
+    private String name = null;
 
     @Override
     protected void execute() {
         CfmMdService service = get(CfmMdService.class);
 
         String[] nameParts = name.split("[()]");
-        if (nameParts.length != 4) {
+        if (nameParts.length != MA_NAME_PARTS_COUNT) {
             throw new IllegalArgumentException("Invalid name format. Must be in " +
                     "the format of <identifier(name-type)identifier(name-type)>");
         }
 
-        MdId mdId = null;
-        MdId.MdNameType nameTypeEnum = MdId.MdNameType.valueOf(nameParts[1]);
-        switch (nameTypeEnum) {
-            case DOMAINNAME:
-                mdId = MdIdDomainName.asMdId(nameParts[0]);
-                break;
-            case MACANDUINT:
-                mdId = MdIdMacUint.asMdId(nameParts[0]);
-                break;
-            case NONE:
-                mdId = MdIdNone.asMdId();
-                break;
-            case CHARACTERSTRING:
-            default:
-                mdId = MdIdCharStr.asMdId(nameParts[0]);
-        }
+        MdId mdId = CfmMdListMdCommand.parseMdName(nameParts[0] + "(" + nameParts[1] + ")");
 
-        MaIdShort maId = null;
-        MaIdShort.MaIdType maNameTypeEnum = MaIdShort.MaIdType.valueOf(nameParts[3]);
-        switch (maNameTypeEnum) {
-            case TWOOCTET:
-                maId = MaId2Octet.asMaId(nameParts[2]);
-                break;
-            case ICCY1731:
-                maId = MaIdIccY1731.asMaId(nameParts[2]);
-                break;
-            case PRIMARYVID:
-                maId = MaIdPrimaryVid.asMaId(nameParts[2]);
-                break;
-            case RFC2685VPNID:
-                maId = MaIdRfc2685VpnId.asMaIdHex(nameParts[2]);
-                break;
-            case CHARACTERSTRING:
-            default:
-                maId = MaIdCharStr.asMaId(nameParts[2]);
-        }
+        MaIdShort maId = CfmMdListMdCommand.parseMaName(nameParts[2] + "(" + nameParts[3] + ")");
 
         try {
             boolean deleted = service.deleteMaintenanceAssociation(mdId, maId);