diff --git a/apps/mappingmanagement/cli/src/main/java/org/onosproject/mapping/cli/MappingsListCommand.java b/apps/mappingmanagement/cli/src/main/java/org/onosproject/mapping/cli/MappingsListCommand.java
index de5c0c9..3323bea 100755
--- a/apps/mappingmanagement/cli/src/main/java/org/onosproject/mapping/cli/MappingsListCommand.java
+++ b/apps/mappingmanagement/cli/src/main/java/org/onosproject/mapping/cli/MappingsListCommand.java
@@ -44,8 +44,8 @@
         description = "Lists mappings")
 public class MappingsListCommand extends AbstractShellCommand {
 
-    private static final String DB = "map_database";
-    private static final String CACHE = "map_cache";
+    private static final String DB = "database";
+    private static final String CACHE = "cache";
 
     private static final String SUMMARY_FORMAT = "deviceId=%s, mappingCount=%d";
     private static final String MAPPING_ID_FORMAT = "  id=%s";
@@ -59,6 +59,9 @@
     private static final String MAPPING_TREATMENT_SHORT_FORMAT = "      %s";
     private static final String JSON_FORMAT = "%s";
 
+    private static final String TYPE_NOT_NULL = "Mapping store type should not be null";
+    private static final String TYPE_ILLEGAL = "Mapping store type is not correct";
+
     @Argument(index = 0, name = "type",
             description = "Shows mappings with specified type",
             required = true, multiValued = false)
@@ -80,13 +83,7 @@
     @Override
     protected void execute() {
 
-        MappingStore.Type typeEnum = null;
-
-        if (type.equals(DB)) {
-            typeEnum = MappingStore.Type.MAP_DATABASE;
-        } else if (type.equals(CACHE)) {
-            typeEnum = MappingStore.Type.MAP_CACHE;
-        }
+        MappingStore.Type typeEnum = getTypeEnum(type);
 
         DeviceService deviceService = get(DeviceService.class);
         Iterable<Device> devices = deviceService.getDevices();
@@ -184,6 +181,29 @@
     }
 
     /**
+     * Returns corresponding type enumeration based on the given
+     * string formatted type.
+     *
+     * @param type string formatted type
+     * @return type enumeration
+     */
+    private MappingStore.Type getTypeEnum(String type) {
+
+        if (type == null) {
+            throw new IllegalArgumentException(TYPE_NOT_NULL);
+        }
+
+        switch (type) {
+            case DB:
+                return MappingStore.Type.MAP_DATABASE;
+            case CACHE:
+                return MappingStore.Type.MAP_CACHE;
+            default:
+                throw new IllegalArgumentException(TYPE_ILLEGAL);
+        }
+    }
+
+    /**
      * Generates JSON object with the mappings of the given device.
      *
      * @param mapper   object mapper
