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

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


The following commit(s) were added to refs/heads/master by this push:
     new b5b14f7d4fa [HUDI-7637] Make StoragePathInfo Comparable (#11050)
b5b14f7d4fa is described below

commit b5b14f7d4fa6224a6674b021664b510c6ae8afb9
Author: Y Ethan Guo <[email protected]>
AuthorDate: Thu Apr 18 05:51:23 2024 -0700

    [HUDI-7637] Make StoragePathInfo Comparable (#11050)
---
 .../main/java/org/apache/hudi/storage/StoragePathInfo.java  |  7 ++++++-
 .../org/apache/hudi/io/storage/TestStoragePathInfo.java     | 13 +++++++++++++
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/hudi-io/src/main/java/org/apache/hudi/storage/StoragePathInfo.java 
b/hudi-io/src/main/java/org/apache/hudi/storage/StoragePathInfo.java
index e4711bf72dd..1c1ebc32a2f 100644
--- a/hudi-io/src/main/java/org/apache/hudi/storage/StoragePathInfo.java
+++ b/hudi-io/src/main/java/org/apache/hudi/storage/StoragePathInfo.java
@@ -31,7 +31,7 @@ import java.io.Serializable;
  * with simplification based on what Hudi needs.
  */
 @PublicAPIClass(maturity = ApiMaturityLevel.EVOLVING)
-public class StoragePathInfo implements Serializable {
+public class StoragePathInfo implements Serializable, 
Comparable<StoragePathInfo> {
   private final StoragePath path;
   private final long length;
   private final boolean isDirectory;
@@ -109,6 +109,11 @@ public class StoragePathInfo implements Serializable {
     return modificationTime;
   }
 
+  @Override
+  public int compareTo(StoragePathInfo o) {
+    return this.getPath().compareTo(o.getPath());
+  }
+
   @Override
   public boolean equals(Object o) {
     if (this == o) {
diff --git 
a/hudi-io/src/test/java/org/apache/hudi/io/storage/TestStoragePathInfo.java 
b/hudi-io/src/test/java/org/apache/hudi/io/storage/TestStoragePathInfo.java
index 72640c5e3df..95cf4d798a4 100644
--- a/hudi-io/src/test/java/org/apache/hudi/io/storage/TestStoragePathInfo.java
+++ b/hudi-io/src/test/java/org/apache/hudi/io/storage/TestStoragePathInfo.java
@@ -71,6 +71,19 @@ public class TestStoragePathInfo {
     }
   }
 
+  @Test
+  public void testCompareTo() {
+    StoragePathInfo pathInfo1 = new StoragePathInfo(
+        new StoragePath(PATH1), LENGTH, false, BLOCK_REPLICATION, BLOCK_SIZE, 
MODIFICATION_TIME);
+    StoragePathInfo pathInfo2 = new StoragePathInfo(
+        new StoragePath(PATH1), LENGTH + 2, false, BLOCK_REPLICATION, 
BLOCK_SIZE, MODIFICATION_TIME + 2L);
+    StoragePathInfo pathInfo3 = new StoragePathInfo(
+        new StoragePath(PATH2), LENGTH, false, BLOCK_REPLICATION, BLOCK_SIZE, 
MODIFICATION_TIME);
+
+    assertEquals(0, pathInfo1.compareTo(pathInfo2));
+    assertEquals(-1, pathInfo1.compareTo(pathInfo3));
+  }
+
   @Test
   public void testEquals() {
     StoragePathInfo pathInfo1 = new StoragePathInfo(

Reply via email to