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

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


The following commit(s) were added to refs/heads/master by this push:
     new d5b926745c3 HDDS-14147. Use AclListBuilder in OmDirectoryInfo and 
OmKeyArgs (#9494)
d5b926745c3 is described below

commit d5b926745c377bb3b20acb96e85281c5c1d64bfc
Author: Russole <[email protected]>
AuthorDate: Sun Dec 14 14:23:59 2025 +0800

    HDDS-14147. Use AclListBuilder in OmDirectoryInfo and OmKeyArgs (#9494)
---
 .../hadoop/ozone/om/helpers/OmDirectoryInfo.java   | 48 ++++++++--------
 .../apache/hadoop/ozone/om/helpers/OmKeyArgs.java  | 65 ++++++++++++----------
 2 files changed, 61 insertions(+), 52 deletions(-)

diff --git 
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmDirectoryInfo.java
 
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmDirectoryInfo.java
index e584417f222..56670fac3b1 100644
--- 
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmDirectoryInfo.java
+++ 
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmDirectoryInfo.java
@@ -17,7 +17,7 @@
 
 package org.apache.hadoop.ozone.om.helpers;
 
-import java.util.LinkedList;
+import com.google.common.collect.ImmutableList;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -48,13 +48,13 @@ public class OmDirectoryInfo extends WithParentObjectId
   private final long creationTime;
   private final long modificationTime;
 
-  private final List<OzoneAcl> acls;
+  private final ImmutableList<OzoneAcl> acls;
 
   public OmDirectoryInfo(Builder builder) {
     super(builder);
     this.name = builder.name;
     this.owner = builder.owner;
-    this.acls = builder.acls;
+    this.acls = builder.acls.build();
     this.creationTime = builder.creationTime;
     this.modificationTime = builder.modificationTime;
   }
@@ -72,6 +72,10 @@ public static OmDirectoryInfo.Builder newBuilder() {
     return new OmDirectoryInfo.Builder();
   }
 
+  public Builder toBuilder() {
+    return new Builder(this);
+  }
+
   /**
    * Builder for Directory Info.
    */
@@ -82,11 +86,23 @@ public static class Builder extends 
WithParentObjectId.Builder<OmDirectoryInfo>
     private long creationTime;
     private long modificationTime;
 
-    private final List<OzoneAcl> acls;
+    private final AclListBuilder acls;
 
     public Builder() {
-      //Default values
-      this.acls = new LinkedList<>();
+      this(AclListBuilder.empty());
+    }
+
+    private Builder(AclListBuilder acls) {
+      this.acls = acls;
+    }
+
+    public Builder(OmDirectoryInfo obj) {
+      super(obj);
+      this.name = obj.name;
+      this.owner = obj.owner;
+      this.creationTime = obj.creationTime;
+      this.modificationTime = obj.modificationTime;
+      this.acls = AclListBuilder.of(obj.acls);
     }
 
     @Override
@@ -128,9 +144,7 @@ public Builder setModificationTime(long 
newModificationTime) {
     }
 
     public Builder setAcls(List<OzoneAcl> listOfAcls) {
-      if (listOfAcls != null) {
-        this.acls.addAll(listOfAcls);
-      }
+      this.acls.addAll(listOfAcls);
       return this;
     }
 
@@ -272,20 +286,6 @@ public int hashCode() {
    */
   @Override
   public OmDirectoryInfo copyObject() {
-    OmDirectoryInfo.Builder builder = new Builder()
-            .setName(name)
-            .setOwner(owner)
-            .setCreationTime(creationTime)
-            .setModificationTime(modificationTime)
-            .setAcls(acls)
-            .setParentObjectID(getParentObjectID())
-            .setObjectID(getObjectID())
-            .setUpdateID(getUpdateID());
-
-    if (getMetadata() != null) {
-      builder.addAllMetadata(getMetadata());
-    }
-
-    return builder.build();
+    return toBuilder().build();
   }
 }
diff --git 
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmKeyArgs.java
 
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmKeyArgs.java
index e1c55fd78cf..395425b069e 100644
--- 
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmKeyArgs.java
+++ 
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmKeyArgs.java
@@ -18,6 +18,7 @@
 package org.apache.hadoop.ozone.om.helpers;
 
 import com.google.common.annotations.VisibleForTesting;
+import com.google.common.collect.ImmutableList;
 import jakarta.annotation.Nonnull;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -48,7 +49,7 @@ public final class OmKeyArgs implements Auditable {
   private final int multipartUploadPartNumber;
   private final Map<String, String> metadata;
   private final boolean sortDatanodesInPipeline;
-  private final List<OzoneAcl> acls;
+  private final ImmutableList<OzoneAcl> acls;
   private final boolean latestVersionLocation;
   private final boolean recursive;
   private final boolean headOp;
@@ -73,7 +74,7 @@ private OmKeyArgs(Builder b) {
     this.multipartUploadID = b.multipartUploadID;
     this.multipartUploadPartNumber = b.multipartUploadPartNumber;
     this.metadata = b.metadata;
-    this.acls = b.acls;
+    this.acls = b.acls.build();
     this.sortDatanodesInPipeline = b.sortDatanodesInPipeline;
     this.latestVersionLocation = b.latestVersionLocation;
     this.recursive = b.recursive;
@@ -191,30 +192,7 @@ public void addLocationInfo(OmKeyLocationInfo 
locationInfo) {
   }
 
   public OmKeyArgs.Builder toBuilder() {
-    OmKeyArgs.Builder builder = new OmKeyArgs.Builder()
-        .setVolumeName(volumeName)
-        .setBucketName(bucketName)
-        .setKeyName(keyName)
-        .setOwnerName(ownerName)
-        .setDataSize(dataSize)
-        .setReplicationConfig(replicationConfig)
-        .setLocationInfoList(locationInfoList)
-        .setIsMultipartKey(isMultipartKey)
-        .setMultipartUploadID(multipartUploadID)
-        .setMultipartUploadPartNumber(multipartUploadPartNumber)
-        .addAllMetadata(metadata)
-        .setSortDatanodesInPipeline(sortDatanodesInPipeline)
-        .setHeadOp(headOp)
-        .setLatestVersionLocation(latestVersionLocation)
-        .setAcls(acls)
-        .setForceUpdateContainerCacheFromSCM(forceUpdateContainerCacheFromSCM)
-        .addAllTags(tags);
-
-    if (expectedDataGeneration != null) {
-      builder.setExpectedDataGeneration(expectedDataGeneration);
-    }
-
-    return builder;
+    return new Builder(this);
   }
 
   @Nonnull
@@ -256,13 +234,44 @@ public static class Builder {
     private final Map<String, String> metadata = new HashMap<>();
     private boolean sortDatanodesInPipeline;
     private boolean latestVersionLocation;
-    private List<OzoneAcl> acls;
+    private final AclListBuilder acls;
     private boolean recursive;
     private boolean headOp;
     private boolean forceUpdateContainerCacheFromSCM;
     private final Map<String, String> tags = new HashMap<>();
     private Long expectedDataGeneration = null;
 
+    public Builder() {
+      this(AclListBuilder.empty());
+    }
+
+    private Builder(AclListBuilder acls) {
+      this.acls = acls;
+    }
+
+    public Builder(OmKeyArgs obj) {
+      this.volumeName = obj.volumeName;
+      this.bucketName = obj.bucketName;
+      this.keyName = obj.keyName;
+      this.ownerName = obj.ownerName;
+      this.dataSize = obj.dataSize;
+      this.replicationConfig = obj.replicationConfig;
+      this.locationInfoList = obj.locationInfoList;
+      this.isMultipartKey = obj.isMultipartKey;
+      this.multipartUploadID = obj.multipartUploadID;
+      this.multipartUploadPartNumber = obj.multipartUploadPartNumber;
+      this.sortDatanodesInPipeline = obj.sortDatanodesInPipeline;
+      this.latestVersionLocation = obj.latestVersionLocation;
+      this.recursive = obj.recursive;
+      this.headOp = obj.headOp;
+      this.forceUpdateContainerCacheFromSCM =
+          obj.forceUpdateContainerCacheFromSCM;
+      this.expectedDataGeneration = obj.expectedDataGeneration;
+      this.metadata.putAll(obj.metadata);
+      this.tags.putAll(obj.tags);
+      this.acls = AclListBuilder.of(obj.acls);
+    }
+
     public Builder setVolumeName(String volume) {
       this.volumeName = volume;
       return this;
@@ -299,7 +308,7 @@ public Builder setLocationInfoList(List<OmKeyLocationInfo> 
locationInfos) {
     }
 
     public Builder setAcls(List<OzoneAcl> listOfAcls) {
-      this.acls = listOfAcls;
+      this.acls.addAll(listOfAcls);
       return this;
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to