You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2021/04/12 09:23:35 UTC

[groovy] 18/25: GROOVY-9649: Sonar refactoring

This is an automated email from the ASF dual-hosted git repository.

paulk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 4cbaec4dd65329570887ba4218438c8bcbe4483f
Author: Iiro Kiviluoma <ii...@outlook.com>
AuthorDate: Fri Apr 9 11:49:29 2021 +0300

    GROOVY-9649: Sonar refactoring
    
    - NumberRange: Extracted nested ternary operations of hasNext into independent statements
    - NumberRange: Inverted if-condition in fetchNextIfNeeded to reduce its cognitive complexity
---
 src/main/java/groovy/lang/NumberRange.java | 35 +++++++++++++++++++-----------
 1 file changed, 22 insertions(+), 13 deletions(-)

diff --git a/src/main/java/groovy/lang/NumberRange.java b/src/main/java/groovy/lang/NumberRange.java
index 8677740..e19a367 100644
--- a/src/main/java/groovy/lang/NumberRange.java
+++ b/src/main/java/groovy/lang/NumberRange.java
@@ -624,9 +624,18 @@ public class NumberRange extends AbstractList<Comparable> implements Range<Compa
         @Override
         public boolean hasNext() {
             fetchNextIfNeeded();
-            return (next != null) && (isAscending
-                    ? (range.inclusiveRight ? compareLessThanEqual(next, range.getTo()) : compareLessThan(next, range.getTo()))
-                    : (range.inclusiveRight ? compareGreaterThanEqual(next, range.getFrom()) : compareGreaterThan(next, range.getFrom())));
+            if (next == null) {
+                return false;
+            }
+            if (isAscending) {
+                return range.inclusiveRight
+                        ? compareLessThanEqual(next, range.getTo())
+                        : compareLessThan(next, range.getTo());
+            }
+            return range.inclusiveRight
+                    ? compareGreaterThanEqual(next, range.getFrom())
+                    : compareGreaterThan(next, range.getFrom());
+
         }
 
         @Override
@@ -641,18 +650,18 @@ public class NumberRange extends AbstractList<Comparable> implements Range<Compa
         }
 
         private void fetchNextIfNeeded() {
-            if (!isNextFetched) {
-                isNextFetched = true;
-
-                if (next == null) {
-                    // make the first fetch lazy too
-                    next = isAscending ? range.getFrom() : range.getTo();
-                    if (!range.inclusiveLeft) {
-                        next = isAscending ? increment(next, step) : decrement(next, step);
-                    }
-                } else {
+            if (isNextFetched) {
+                return;
+            }
+            isNextFetched = true;
+            if (next == null) {
+                // make the first fetch lazy too
+                next = isAscending ? range.getFrom() : range.getTo();
+                if (!range.inclusiveLeft) {
                     next = isAscending ? increment(next, step) : decrement(next, step);
                 }
+            } else {
+                next = isAscending ? increment(next, step) : decrement(next, step);
             }
         }