GEODE-3267: Refactoring QueueCommands - updated based on feedback

Project: http://git-wip-us.apache.org/repos/asf/geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/957d583e
Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/957d583e
Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/957d583e

Branch: refs/heads/develop
Commit: 957d583e54dc34c029885f32a54f0b25a3ac1094
Parents: 64de3b6
Author: YehEmily <emilyyeh1...@gmail.com>
Authored: Mon Aug 7 15:25:24 2017 -0700
Committer: Kirk Lund <kl...@apache.org>
Committed: Fri Aug 11 13:59:14 2017 -0700

----------------------------------------------------------------------
 .../cli/commands/DescribeRegionCommand.java     | 62 +++++++++-----------
 .../cli/commands/ListRegionCommand.java         | 51 ++++------------
 .../controllers/RegionCommandsController.java   |  7 ++-
 .../internal/security/TestCommand.java          |  3 -
 4 files changed, 43 insertions(+), 80 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/geode/blob/957d583e/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeRegionCommand.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeRegionCommand.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeRegionCommand.java
index eb74793..65a6153 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeRegionCommand.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeRegionCommand.java
@@ -16,7 +16,6 @@
 package org.apache.geode.management.internal.cli.commands;
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -234,7 +233,7 @@ public class DescribeRegionCommand implements GfshCommand {
 
       for (String attributeName : attributes) {
         String attributeValue = attributesMap.get(attributeName);
-        String type, memName;
+        String type;
 
         if (!isTypeAdded) {
           type = attributeType;
@@ -249,46 +248,39 @@ public class DescribeRegionCommand implements GfshCommand 
{
 
   private void writeFixedPartitionAttributesToTable(TabularResultData table,
       List<FixedPartitionAttributesInfo> fpaList, String member, boolean 
isMemberNameAdded) {
+    if (fpaList == null) {
+      return;
+    }
 
-    if (fpaList != null) {
-      boolean isTypeAdded = false;
-      final String blank = "";
-
-      Iterator<FixedPartitionAttributesInfo> fpaIter = fpaList.iterator();
-      String type, memName;
-
-      while (fpaIter.hasNext()) {
-        FixedPartitionAttributesInfo fpa = fpaIter.next();
-        StringBuilder fpaBuilder = new StringBuilder();
-        fpaBuilder.append(fpa.getPartitionName());
-        fpaBuilder.append(',');
+    boolean isTypeAdded = false;
+    final String blank = "";
+    String memName;
 
-        if (fpa.isPrimary()) {
-          fpaBuilder.append("Primary");
-        } else {
-          fpaBuilder.append("Secondary");
-        }
-        fpaBuilder.append(',');
-        fpaBuilder.append(fpa.getNumBuckets());
+    for (FixedPartitionAttributesInfo fpa : fpaList) {
+      StringBuilder fpaBuilder = new StringBuilder();
+      fpaBuilder.append(fpa.getPartitionName());
+      fpaBuilder.append(',');
 
-        if (!isTypeAdded) {
-          type = "";
-          isTypeAdded = true;
-        } else {
-          type = blank;
-        }
+      if (fpa.isPrimary()) {
+        fpaBuilder.append("Primary");
+      } else {
+        fpaBuilder.append("Secondary");
+      }
+      fpaBuilder.append(',');
+      fpaBuilder.append(fpa.getNumBuckets());
 
-        if (!isMemberNameAdded) {
-          memName = member;
-          isMemberNameAdded = true;
-        } else {
-          memName = blank;
-        }
+      if (!isTypeAdded) {
+        isTypeAdded = true;
+      }
 
-        writeAttributeToTable(table, memName, type, "Fixed Partition", 
fpaBuilder.toString());
+      if (!isMemberNameAdded) {
+        memName = member;
+        isMemberNameAdded = true;
+      } else {
+        memName = blank;
       }
+      writeAttributeToTable(table, memName, "", "Fixed Partition", 
fpaBuilder.toString());
     }
-
   }
 
   private boolean writeAttributesToTable(TabularResultData table, String 
attributeType,

http://git-wip-us.apache.org/repos/asf/geode/blob/957d583e/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListRegionCommand.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListRegionCommand.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListRegionCommand.java
index 1ca310c..5e379b0 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListRegionCommand.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListRegionCommand.java
@@ -16,9 +16,11 @@
 package org.apache.geode.management.internal.cli.commands;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.LinkedHashSet;
+import java.util.List;
 import java.util.Set;
-import java.util.TreeSet;
+import java.util.stream.Collectors;
 
 import org.springframework.shell.core.annotation.CliCommand;
 import org.springframework.shell.core.annotation.CliOption;
@@ -34,7 +36,6 @@ import 
org.apache.geode.management.internal.cli.domain.RegionInformation;
 import org.apache.geode.management.internal.cli.functions.GetRegionsFunction;
 import org.apache.geode.management.internal.cli.i18n.CliStrings;
 import org.apache.geode.management.internal.cli.result.ResultBuilder;
-import org.apache.geode.management.internal.cli.result.TabularResultData;
 import org.apache.geode.management.internal.security.ResourceOperation;
 import org.apache.geode.security.ResourcePermission;
 
@@ -54,7 +55,6 @@ public class ListRegionCommand implements GfshCommand {
           help = CliStrings.LIST_REGION__MEMBER__HELP) String[] 
memberNameOrId) {
     Result result = null;
     try {
-      Set<RegionInformation> regionInfoSet = new LinkedHashSet<>();
       ResultCollector<?, ?> rc;
       Set<DistributedMember> targetMembers = CliUtil.findMembers(group, 
memberNameOrId);
 
@@ -62,45 +62,18 @@ public class ListRegionCommand implements GfshCommand {
         return 
ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE);
       }
 
-      TabularResultData resultData = ResultBuilder.createTabularResultData();
       rc = CliUtil.executeFunction(getRegionsFunction, null, targetMembers);
-      ArrayList<?> resultList = (ArrayList<?>) rc.getResult();
+      List<?> resultList = (ArrayList<?>) rc.getResult();
 
-      if (resultList != null) {
-
-        for (Object resultObj : resultList) {
-          if (resultObj != null) {
-            if (resultObj instanceof Object[]) {
-              Object[] resultObjectArray = (Object[]) resultObj;
-              for (Object regionInfo : resultObjectArray) {
-                if (regionInfo instanceof RegionInformation) {
-                  regionInfoSet.add((RegionInformation) regionInfo);
-                }
-              }
-            }
-          }
-        }
-
-        Set<String> regionNames = new TreeSet<>();
-
-        for (RegionInformation regionInfo : regionInfoSet) {
-          regionNames.add(regionInfo.getName());
-          Set<String> subRegionNames = regionInfo.getSubRegionNames();
-
-          regionNames.addAll(subRegionNames);
-        }
-
-        for (String regionName : regionNames) {
-          resultData.accumulate("List of regions", regionName);
-        }
-
-        if (!regionNames.isEmpty()) {
-          result = ResultBuilder.buildResult(resultData);
-
-        } else {
-          result = 
ResultBuilder.createInfoResult(CliStrings.LIST_REGION__MSG__NOT_FOUND);
-        }
+      if (resultList == null) {
+        return null;
       }
+
+      resultList.stream().filter(resultObj -> resultObj instanceof Object[])
+          .map(resultObj -> (Object[]) resultObj).flatMap(Arrays::stream)
+          .filter(regionInfo -> regionInfo instanceof RegionInformation)
+          .map(regionInfo -> (RegionInformation) regionInfo)
+          .collect(Collectors.toCollection(LinkedHashSet::new));
     } catch (FunctionInvocationTargetException e) {
       result = ResultBuilder.createGemFireErrorResult(CliStrings
           .format(CliStrings.COULD_NOT_EXECUTE_COMMAND_TRY_AGAIN, 
CliStrings.LIST_REGION));

http://git-wip-us.apache.org/repos/asf/geode/blob/957d583e/geode-core/src/main/java/org/apache/geode/management/internal/web/controllers/RegionCommandsController.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/main/java/org/apache/geode/management/internal/web/controllers/RegionCommandsController.java
 
b/geode-core/src/main/java/org/apache/geode/management/internal/web/controllers/RegionCommandsController.java
index 6d30d74..815bc47 100644
--- 
a/geode-core/src/main/java/org/apache/geode/management/internal/web/controllers/RegionCommandsController.java
+++ 
b/geode-core/src/main/java/org/apache/geode/management/internal/web/controllers/RegionCommandsController.java
@@ -14,9 +14,6 @@
  */
 package org.apache.geode.management.internal.web.controllers;
 
-import org.apache.geode.internal.lang.StringUtils;
-import org.apache.geode.management.internal.cli.i18n.CliStrings;
-import org.apache.geode.management.internal.cli.util.CommandStringBuilder;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -25,6 +22,10 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.context.request.WebRequest;
 
+import org.apache.geode.internal.lang.StringUtils;
+import org.apache.geode.management.internal.cli.i18n.CliStrings;
+import org.apache.geode.management.internal.cli.util.CommandStringBuilder;
+
 /**
  * The ListRegionCommand and DescribeRegionCommand classes implement GemFire 
Management REST API web
  * service endpoints for the Gfsh Region Commands.

http://git-wip-us.apache.org/repos/asf/geode/blob/957d583e/geode-core/src/test/java/org/apache/geode/management/internal/security/TestCommand.java
----------------------------------------------------------------------
diff --git 
a/geode-core/src/test/java/org/apache/geode/management/internal/security/TestCommand.java
 
b/geode-core/src/test/java/org/apache/geode/management/internal/security/TestCommand.java
index e5b004c..178b6b0 100644
--- 
a/geode-core/src/test/java/org/apache/geode/management/internal/security/TestCommand.java
+++ 
b/geode-core/src/test/java/org/apache/geode/management/internal/security/TestCommand.java
@@ -278,8 +278,5 @@ public class TestCommand {
 
     // ShellCommand
     createTestCommand("disconnect");
-
-    // Misc commands
-    // createTestCommand("shutdown", clusterManage);
   }
 }

Reply via email to