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

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


The following commit(s) were added to refs/heads/master by this push:
     new 9b521d9068c Refactor DataMatchCalculatedResult (#25958)
9b521d9068c is described below

commit 9b521d9068ca58dfd14d593852cda36969434234
Author: Liang Zhang <[email protected]>
AuthorDate: Wed May 31 16:57:03 2023 +0800

    Refactor DataMatchCalculatedResult (#25958)
---
 .../DataConsistencyCalculatedResult.java           | 12 +++++------
 .../consistency/DataMatchCalculatedResult.java     | 12 ++++++++---
 ...DataMatchDataConsistencyCalculateAlgorithm.java |  2 +-
 .../consistency/DataMatchCalculatedResultTest.java | 24 +++++++++++-----------
 4 files changed, 28 insertions(+), 22 deletions(-)

diff --git 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/api/check/consistency/DataConsistencyCalculatedResult.java
 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/api/check/consistency/DataConsistencyCalculatedResult.java
index c5d4587ed02..9879208a87e 100644
--- 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/api/check/consistency/DataConsistencyCalculatedResult.java
+++ 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/api/check/consistency/DataConsistencyCalculatedResult.java
@@ -25,16 +25,16 @@ import java.util.Optional;
 public interface DataConsistencyCalculatedResult {
     
     /**
-     * Get records count.
+     * Get max unique key value.
      *
-     * @return records count
+     * @return max unique key value
      */
-    int getRecordsCount();
+    Optional<Object> getMaxUniqueKeyValue();
     
     /**
-     * Get max unique key value.
+     * Get records count.
      *
-     * @return max unique key value
+     * @return records count
      */
-    Optional<Object> getMaxUniqueKeyValue();
+    int getRecordsCount();
 }
diff --git 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataMatchCalculatedResult.java
 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataMatchCalculatedResult.java
index a916300e9f8..74b0a72fae2 100644
--- 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataMatchCalculatedResult.java
+++ 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataMatchCalculatedResult.java
@@ -17,9 +17,9 @@
 
 package org.apache.shardingsphere.data.pipeline.core.check.consistency;
 
+import lombok.AccessLevel;
 import lombok.Getter;
 import lombok.NonNull;
-import lombok.RequiredArgsConstructor;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.builder.EqualsBuilder;
@@ -35,7 +35,6 @@ import java.util.Optional;
 /**
  * Data match calculated result.
  */
-@RequiredArgsConstructor
 @Getter
 @Slf4j
 public final class DataMatchCalculatedResult implements 
DataConsistencyCalculatedResult {
@@ -45,8 +44,15 @@ public final class DataMatchCalculatedResult implements 
DataConsistencyCalculate
     
     private final int recordsCount;
     
+    @Getter(AccessLevel.NONE)
     private final Collection<Collection<Object>> records;
     
+    public DataMatchCalculatedResult(final Object maxUniqueKeyValue, final 
Collection<Collection<Object>> records) {
+        this.maxUniqueKeyValue = maxUniqueKeyValue;
+        recordsCount = records.size();
+        this.records = records;
+    }
+    
     @Override
     public Optional<Object> getMaxUniqueKeyValue() {
         return Optional.of(maxUniqueKeyValue);
@@ -92,6 +98,6 @@ public final class DataMatchCalculatedResult implements 
DataConsistencyCalculate
     
     @Override
     public int hashCode() {
-        return new HashCodeBuilder(17, 
37).append(getMaxUniqueKeyValue().orElse(null)).append(getRecordsCount()).append(getRecords()).toHashCode();
+        return new HashCodeBuilder(17, 
37).append(getMaxUniqueKeyValue().orElse(null)).append(getRecordsCount()).append(records).toHashCode();
     }
 }
diff --git 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
index eb48732ce45..6cf176bf939 100644
--- 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
+++ 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
@@ -110,7 +110,7 @@ public final class 
DataMatchDataConsistencyCalculateAlgorithm extends AbstractSt
             if (records.isEmpty()) {
                 calculationContext.close();
             }
-            return records.isEmpty() ? Optional.empty() : Optional.of(new 
DataMatchCalculatedResult(maxUniqueKeyValue, records.size(), records));
+            return records.isEmpty() ? Optional.empty() : Optional.of(new 
DataMatchCalculatedResult(maxUniqueKeyValue, records));
         } catch (final PipelineSQLException ex) {
             calculationContext.close();
             throw ex;
diff --git 
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataMatchCalculatedResultTest.java
 
b/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataMatchCalculatedResultTest.java
index ba6412caf68..531e54886f8 100644
--- 
a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataMatchCalculatedResultTest.java
+++ 
b/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataMatchCalculatedResultTest.java
@@ -36,15 +36,15 @@ class DataMatchCalculatedResultTest {
     
     @Test
     void assertEmptyRecordsEquals() {
-        DataMatchCalculatedResult actual = new DataMatchCalculatedResult(0, 0, 
Collections.emptyList());
-        DataMatchCalculatedResult expected = new DataMatchCalculatedResult(0, 
0, Collections.emptyList());
+        DataMatchCalculatedResult actual = new DataMatchCalculatedResult(0, 
Collections.emptyList());
+        DataMatchCalculatedResult expected = new DataMatchCalculatedResult(0, 
Collections.emptyList());
         assertThat(actual, is(expected));
     }
     
     @Test
     void assertFullTypeRecordsEquals() {
-        DataMatchCalculatedResult actual = new DataMatchCalculatedResult(1000, 
2, Arrays.asList(buildFixedFullTypeRecord(), buildFixedFullTypeRecord()));
-        DataMatchCalculatedResult expected = new 
DataMatchCalculatedResult(1000, 2, Arrays.asList(buildFixedFullTypeRecord(), 
buildFixedFullTypeRecord()));
+        DataMatchCalculatedResult actual = new DataMatchCalculatedResult(1000, 
Arrays.asList(buildFixedFullTypeRecord(), buildFixedFullTypeRecord()));
+        DataMatchCalculatedResult expected = new 
DataMatchCalculatedResult(1000, Arrays.asList(buildFixedFullTypeRecord(), 
buildFixedFullTypeRecord()));
         assertThat(actual, is(expected));
     }
     
@@ -55,7 +55,7 @@ class DataMatchCalculatedResultTest {
     
     @Test
     void assertFullTypeRecordsEqualsWithDifferentDecimalScale() {
-        DataMatchCalculatedResult expected = new 
DataMatchCalculatedResult(1000, 1, 
Collections.singletonList(buildFixedFullTypeRecord()));
+        DataMatchCalculatedResult expected = new 
DataMatchCalculatedResult(1000, 
Collections.singleton(buildFixedFullTypeRecord()));
         List<Object> record = buildFixedFullTypeRecord();
         for (int index = 0; index < record.size(); index++) {
             if (record.get(index) instanceof BigDecimal) {
@@ -63,30 +63,30 @@ class DataMatchCalculatedResultTest {
                 record.set(index, decimal.setScale(decimal.scale() + 1, 
RoundingMode.CEILING));
             }
         }
-        DataMatchCalculatedResult actual = new DataMatchCalculatedResult(1000, 
1, Collections.singletonList(record));
+        DataMatchCalculatedResult actual = new DataMatchCalculatedResult(1000, 
Collections.singleton(record));
         assertThat(actual, is(expected));
     }
     
     @Test
     void assertRecordsCountNotEquals() {
-        DataMatchCalculatedResult result1 = new 
DataMatchCalculatedResult(1000, 1, Collections.emptyList());
-        DataMatchCalculatedResult result2 = new 
DataMatchCalculatedResult(1000, 0, Collections.emptyList());
+        DataMatchCalculatedResult result1 = new 
DataMatchCalculatedResult(1000, 
Collections.singleton(Collections.singleton(buildFixedFullTypeRecord())));
+        DataMatchCalculatedResult result2 = new 
DataMatchCalculatedResult(1000, Collections.emptyList());
         assertNotEquals(result1, result2);
     }
     
     @Test
     void assertMaxUniqueKeyValueNotEquals() {
-        DataMatchCalculatedResult result1 = new 
DataMatchCalculatedResult(1000, 1, Collections.emptyList());
-        DataMatchCalculatedResult result2 = new 
DataMatchCalculatedResult(1001, 1, Collections.emptyList());
+        DataMatchCalculatedResult result1 = new 
DataMatchCalculatedResult(1000, 
Collections.singleton(Collections.singleton(buildFixedFullTypeRecord())));
+        DataMatchCalculatedResult result2 = new 
DataMatchCalculatedResult(1001, 
Collections.singleton(Collections.singleton(buildFixedFullTypeRecord())));
         assertNotEquals(result1, result2);
     }
     
     @Test
     void assertRandomColumnValueNotEquals() {
         List<Object> record = buildFixedFullTypeRecord();
-        DataMatchCalculatedResult result1 = new 
DataMatchCalculatedResult(1000, 1, Collections.singletonList(record));
+        DataMatchCalculatedResult result1 = new 
DataMatchCalculatedResult(1000, Collections.singleton(record));
         for (int index = 0; index < record.size(); index++) {
-            DataMatchCalculatedResult result2 = new 
DataMatchCalculatedResult(1000, 1, 
Collections.singletonList(modifyColumnValueRandomly(buildFixedFullTypeRecord(), 
index)));
+            DataMatchCalculatedResult result2 = new 
DataMatchCalculatedResult(1000, 
Collections.singleton(modifyColumnValueRandomly(buildFixedFullTypeRecord(), 
index)));
             assertNotEquals(result1, result2);
         }
     }

Reply via email to