Browse Source

first step: remove lombok at io.milvus.v2.service.resourcegroup (#1500)

Signed-off-by: likun <likun09@kuaishou.com>
Co-authored-by: likun <likun09@kuaishou.com>
kun 2 tháng trước cách đây
mục cha
commit
ed3bff1147

+ 73 - 4
sdk-core/src/main/java/io/milvus/v2/service/resourcegroup/request/CreateResourceGroupReq.java

@@ -1,12 +1,81 @@
 package io.milvus.v2.service.resourcegroup.request;
 
 import io.milvus.common.resourcegroup.ResourceGroupConfig;
-import lombok.Data;
-import lombok.experimental.SuperBuilder;
+import org.apache.commons.lang3.builder.EqualsBuilder;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
 
-@Data
-@SuperBuilder
 public class CreateResourceGroupReq {
     private String groupName;
     private ResourceGroupConfig config;
+
+    private CreateResourceGroupReq(Builder builder) {
+        this.groupName = builder.groupName;
+        this.config = builder.config;
+    }
+
+    public static Builder builder() {
+        return new Builder();
+    }
+
+    public String getGroupName() {
+        return groupName;
+    }
+
+    public void setGroupName(String groupName) {
+        this.groupName = groupName;
+    }
+
+    public ResourceGroupConfig getConfig() {
+        return config;
+    }
+
+    public void setConfig(ResourceGroupConfig config) {
+        this.config = config;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) return true;
+        if (obj == null || getClass() != obj.getClass()) return false;
+        CreateResourceGroupReq that = (CreateResourceGroupReq) obj;
+        return new EqualsBuilder()
+                .append(groupName, that.groupName)
+                .append(config, that.config)
+                .isEquals();
+    }
+
+    @Override
+    public int hashCode() {
+        return new HashCodeBuilder(17, 37)
+                .append(groupName)
+                .append(config)
+                .toHashCode();
+    }
+
+    @Override
+    public String toString() {
+        return "CreateResourceGroupReq{" +
+                "groupName='" + groupName + '\'' +
+                ", config=" + config +
+                '}';
+    }
+
+    public static class Builder {
+        private String groupName;
+        private ResourceGroupConfig config;
+
+        public Builder groupName(String groupName) {
+            this.groupName = groupName;
+            return this;
+        }
+
+        public Builder config(ResourceGroupConfig config) {
+            this.config = config;
+            return this;
+        }
+
+        public CreateResourceGroupReq build() {
+            return new CreateResourceGroupReq(this);
+        }
+    }
 }

+ 55 - 4
sdk-core/src/main/java/io/milvus/v2/service/resourcegroup/request/DescribeResourceGroupReq.java

@@ -1,10 +1,61 @@
 package io.milvus.v2.service.resourcegroup.request;
 
-import lombok.Data;
-import lombok.experimental.SuperBuilder;
+import org.apache.commons.lang3.builder.EqualsBuilder;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
 
-@Data
-@SuperBuilder
 public class DescribeResourceGroupReq {
     private String groupName;
+
+    private DescribeResourceGroupReq(Builder builder) {
+        this.groupName = builder.groupName;
+    }
+
+    public static Builder builder() {
+        return new Builder();
+    }
+
+    public String getGroupName() {
+        return groupName;
+    }
+
+    public void setGroupName(String groupName) {
+        this.groupName = groupName;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) return true;
+        if (obj == null || getClass() != obj.getClass()) return false;
+        DescribeResourceGroupReq that = (DescribeResourceGroupReq) obj;
+        return new EqualsBuilder()
+                .append(groupName, that.groupName)
+                .isEquals();
+    }
+
+    @Override
+    public int hashCode() {
+        return new HashCodeBuilder(17, 37)
+                .append(groupName)
+                .toHashCode();
+    }
+
+    @Override
+    public String toString() {
+        return "DescribeResourceGroupReq{" +
+                "groupName='" + groupName + '\'' +
+                '}';
+    }
+
+    public static class Builder {
+        private String groupName;
+
+        public Builder groupName(String groupName) {
+            this.groupName = groupName;
+            return this;
+        }
+
+        public DescribeResourceGroupReq build() {
+            return new DescribeResourceGroupReq(this);
+        }
+    }
 }

+ 55 - 4
sdk-core/src/main/java/io/milvus/v2/service/resourcegroup/request/DropResourceGroupReq.java

@@ -1,10 +1,61 @@
 package io.milvus.v2.service.resourcegroup.request;
 
-import lombok.Data;
-import lombok.experimental.SuperBuilder;
+import org.apache.commons.lang3.builder.EqualsBuilder;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
 
-@Data
-@SuperBuilder
 public class DropResourceGroupReq {
     private String groupName;
+
+    private DropResourceGroupReq(Builder builder) {
+        this.groupName = builder.groupName;
+    }
+
+    public static Builder builder() {
+        return new Builder();
+    }
+
+    public String getGroupName() {
+        return groupName;
+    }
+
+    public void setGroupName(String groupName) {
+        this.groupName = groupName;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) return true;
+        if (obj == null || getClass() != obj.getClass()) return false;
+        DropResourceGroupReq that = (DropResourceGroupReq) obj;
+        return new EqualsBuilder()
+                .append(groupName, that.groupName)
+                .isEquals();
+    }
+
+    @Override
+    public int hashCode() {
+        return new HashCodeBuilder(17, 37)
+                .append(groupName)
+                .toHashCode();
+    }
+
+    @Override
+    public String toString() {
+        return "DropResourceGroupReq{" +
+                "groupName='" + groupName + '\'' +
+                '}';
+    }
+
+    public static class Builder {
+        private String groupName;
+
+        public Builder groupName(String groupName) {
+            this.groupName = groupName;
+            return this;
+        }
+
+        public DropResourceGroupReq build() {
+            return new DropResourceGroupReq(this);
+        }
+    }
 }

+ 34 - 4
sdk-core/src/main/java/io/milvus/v2/service/resourcegroup/request/ListResourceGroupsReq.java

@@ -1,9 +1,39 @@
 package io.milvus.v2.service.resourcegroup.request;
 
-import lombok.Data;
-import lombok.experimental.SuperBuilder;
+import org.apache.commons.lang3.builder.EqualsBuilder;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
 
-@Data
-@SuperBuilder
 public class ListResourceGroupsReq {
+
+    private ListResourceGroupsReq(Builder builder) {
+        // No fields to initialize
+    }
+
+    public static Builder builder() {
+        return new Builder();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) return true;
+        if (obj == null || getClass() != obj.getClass()) return false;
+        return new EqualsBuilder().isEquals();
+    }
+
+    @Override
+    public int hashCode() {
+        return new HashCodeBuilder(17, 37).toHashCode();
+    }
+
+    @Override
+    public String toString() {
+        return "ListResourceGroupsReq{}";
+    }
+
+    public static class Builder {
+
+        public ListResourceGroupsReq build() {
+            return new ListResourceGroupsReq(this);
+        }
+    }
 }

+ 91 - 4
sdk-core/src/main/java/io/milvus/v2/service/resourcegroup/request/TransferNodeReq.java

@@ -1,12 +1,99 @@
 package io.milvus.v2.service.resourcegroup.request;
 
-import lombok.Data;
-import lombok.experimental.SuperBuilder;
+import org.apache.commons.lang3.builder.EqualsBuilder;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
 
-@Data
-@SuperBuilder
 public class TransferNodeReq {
     private String sourceGroupName;
     private String targetGroupName;
     private Integer numOfNodes;
+
+    private TransferNodeReq(Builder builder) {
+        this.sourceGroupName = builder.sourceGroupName;
+        this.targetGroupName = builder.targetGroupName;
+        this.numOfNodes = builder.numOfNodes;
+    }
+
+    public static Builder builder() {
+        return new Builder();
+    }
+
+    public String getSourceGroupName() {
+        return sourceGroupName;
+    }
+
+    public void setSourceGroupName(String sourceGroupName) {
+        this.sourceGroupName = sourceGroupName;
+    }
+
+    public String getTargetGroupName() {
+        return targetGroupName;
+    }
+
+    public void setTargetGroupName(String targetGroupName) {
+        this.targetGroupName = targetGroupName;
+    }
+
+    public Integer getNumOfNodes() {
+        return numOfNodes;
+    }
+
+    public void setNumOfNodes(Integer numOfNodes) {
+        this.numOfNodes = numOfNodes;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) return true;
+        if (obj == null || getClass() != obj.getClass()) return false;
+        TransferNodeReq that = (TransferNodeReq) obj;
+        return new EqualsBuilder()
+                .append(sourceGroupName, that.sourceGroupName)
+                .append(targetGroupName, that.targetGroupName)
+                .append(numOfNodes, that.numOfNodes)
+                .isEquals();
+    }
+
+    @Override
+    public int hashCode() {
+        return new HashCodeBuilder(17, 37)
+                .append(sourceGroupName)
+                .append(targetGroupName)
+                .append(numOfNodes)
+                .toHashCode();
+    }
+
+    @Override
+    public String toString() {
+        return "TransferNodeReq{" +
+                "sourceGroupName='" + sourceGroupName + '\'' +
+                ", targetGroupName='" + targetGroupName + '\'' +
+                ", numOfNodes=" + numOfNodes +
+                '}';
+    }
+
+    public static class Builder {
+        private String sourceGroupName;
+        private String targetGroupName;
+        private Integer numOfNodes;
+
+        public Builder sourceGroupName(String sourceGroupName) {
+            this.sourceGroupName = sourceGroupName;
+            return this;
+        }
+
+        public Builder targetGroupName(String targetGroupName) {
+            this.targetGroupName = targetGroupName;
+            return this;
+        }
+
+        public Builder numOfNodes(Integer numOfNodes) {
+            this.numOfNodes = numOfNodes;
+            return this;
+        }
+
+        public TransferNodeReq build() {
+            return new TransferNodeReq(this);
+        }
+    }
 }

+ 127 - 4
sdk-core/src/main/java/io/milvus/v2/service/resourcegroup/request/TransferReplicaReq.java

@@ -1,14 +1,137 @@
 package io.milvus.v2.service.resourcegroup.request;
 
-import lombok.Data;
-import lombok.experimental.SuperBuilder;
+import org.apache.commons.lang3.builder.EqualsBuilder;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
 
-@Data
-@SuperBuilder
 public class TransferReplicaReq {
     private String sourceGroupName;
     private String targetGroupName;
     private String collectionName;
     private String databaseName;
     private Long numberOfReplicas;
+
+    private TransferReplicaReq(Builder builder) {
+        this.sourceGroupName = builder.sourceGroupName;
+        this.targetGroupName = builder.targetGroupName;
+        this.collectionName = builder.collectionName;
+        this.databaseName = builder.databaseName;
+        this.numberOfReplicas = builder.numberOfReplicas;
+    }
+
+    public static Builder builder() {
+        return new Builder();
+    }
+
+    public String getSourceGroupName() {
+        return sourceGroupName;
+    }
+
+    public void setSourceGroupName(String sourceGroupName) {
+        this.sourceGroupName = sourceGroupName;
+    }
+
+    public String getTargetGroupName() {
+        return targetGroupName;
+    }
+
+    public void setTargetGroupName(String targetGroupName) {
+        this.targetGroupName = targetGroupName;
+    }
+
+    public String getCollectionName() {
+        return collectionName;
+    }
+
+    public void setCollectionName(String collectionName) {
+        this.collectionName = collectionName;
+    }
+
+    public String getDatabaseName() {
+        return databaseName;
+    }
+
+    public void setDatabaseName(String databaseName) {
+        this.databaseName = databaseName;
+    }
+
+    public Long getNumberOfReplicas() {
+        return numberOfReplicas;
+    }
+
+    public void setNumberOfReplicas(Long numberOfReplicas) {
+        this.numberOfReplicas = numberOfReplicas;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) return true;
+        if (obj == null || getClass() != obj.getClass()) return false;
+        TransferReplicaReq that = (TransferReplicaReq) obj;
+        return new EqualsBuilder()
+                .append(sourceGroupName, that.sourceGroupName)
+                .append(targetGroupName, that.targetGroupName)
+                .append(collectionName, that.collectionName)
+                .append(databaseName, that.databaseName)
+                .append(numberOfReplicas, that.numberOfReplicas)
+                .isEquals();
+    }
+
+    @Override
+    public int hashCode() {
+        return new HashCodeBuilder(17, 37)
+                .append(sourceGroupName)
+                .append(targetGroupName)
+                .append(collectionName)
+                .append(databaseName)
+                .append(numberOfReplicas)
+                .toHashCode();
+    }
+
+    @Override
+    public String toString() {
+        return "TransferReplicaReq{" +
+                "sourceGroupName='" + sourceGroupName + '\'' +
+                ", targetGroupName='" + targetGroupName + '\'' +
+                ", collectionName='" + collectionName + '\'' +
+                ", databaseName='" + databaseName + '\'' +
+                ", numberOfReplicas=" + numberOfReplicas +
+                '}';
+    }
+
+    public static class Builder {
+        private String sourceGroupName;
+        private String targetGroupName;
+        private String collectionName;
+        private String databaseName;
+        private Long numberOfReplicas;
+
+        public Builder sourceGroupName(String sourceGroupName) {
+            this.sourceGroupName = sourceGroupName;
+            return this;
+        }
+
+        public Builder targetGroupName(String targetGroupName) {
+            this.targetGroupName = targetGroupName;
+            return this;
+        }
+
+        public Builder collectionName(String collectionName) {
+            this.collectionName = collectionName;
+            return this;
+        }
+
+        public Builder databaseName(String databaseName) {
+            this.databaseName = databaseName;
+            return this;
+        }
+
+        public Builder numberOfReplicas(Long numberOfReplicas) {
+            this.numberOfReplicas = numberOfReplicas;
+            return this;
+        }
+
+        public TransferReplicaReq build() {
+            return new TransferReplicaReq(this);
+        }
+    }
 }

+ 56 - 7
sdk-core/src/main/java/io/milvus/v2/service/resourcegroup/request/UpdateResourceGroupsReq.java

@@ -1,16 +1,65 @@
 package io.milvus.v2.service.resourcegroup.request;
 
 import io.milvus.common.resourcegroup.ResourceGroupConfig;
-import lombok.Builder;
-import lombok.Data;
-import lombok.experimental.SuperBuilder;
+import org.apache.commons.lang3.builder.EqualsBuilder;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
 
 import java.util.HashMap;
 import java.util.Map;
 
-@Data
-@SuperBuilder
 public class UpdateResourceGroupsReq {
-    @Builder.Default
-    private Map<String, ResourceGroupConfig> resourceGroups = new HashMap<>();
+    private Map<String, ResourceGroupConfig> resourceGroups;
+
+    private UpdateResourceGroupsReq(Builder builder) {
+        this.resourceGroups = builder.resourceGroups;
+    }
+
+    public static Builder builder() {
+        return new Builder();
+    }
+
+    public Map<String, ResourceGroupConfig> getResourceGroups() {
+        return resourceGroups;
+    }
+
+    public void setResourceGroups(Map<String, ResourceGroupConfig> resourceGroups) {
+        this.resourceGroups = resourceGroups;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) return true;
+        if (obj == null || getClass() != obj.getClass()) return false;
+        UpdateResourceGroupsReq that = (UpdateResourceGroupsReq) obj;
+        return new EqualsBuilder()
+                .append(resourceGroups, that.resourceGroups)
+                .isEquals();
+    }
+
+    @Override
+    public int hashCode() {
+        return new HashCodeBuilder(17, 37)
+                .append(resourceGroups)
+                .toHashCode();
+    }
+
+    @Override
+    public String toString() {
+        return "UpdateResourceGroupsReq{" +
+                "resourceGroups=" + resourceGroups +
+                '}';
+    }
+
+    public static class Builder {
+        private Map<String, ResourceGroupConfig> resourceGroups = new HashMap<>();
+
+        public Builder resourceGroups(Map<String, ResourceGroupConfig> resourceGroups) {
+            this.resourceGroups = resourceGroups;
+            return this;
+        }
+
+        public UpdateResourceGroupsReq build() {
+            return new UpdateResourceGroupsReq(this);
+        }
+    }
 }

+ 185 - 13
sdk-core/src/main/java/io/milvus/v2/service/resourcegroup/response/DescribeResourceGroupResp.java

@@ -2,25 +2,197 @@ package io.milvus.v2.service.resourcegroup.response;
 
 import io.milvus.common.resourcegroup.NodeInfo;
 import io.milvus.common.resourcegroup.ResourceGroupConfig;
-import lombok.Builder;
-import lombok.Data;
-import lombok.experimental.SuperBuilder;
+import org.apache.commons.lang3.builder.EqualsBuilder;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
 
 import java.util.*;
 
-@Data
-@SuperBuilder
 public class DescribeResourceGroupResp {
     private String groupName;
     private Integer capacity;
     private Integer numberOfAvailableNode;
-    @Builder.Default
-    private Map<String, Integer> numberOfLoadedReplica = new HashMap<>();
-    @Builder.Default
-    private Map<String, Integer> numberOfOutgoingNode = new HashMap<>();
-    @Builder.Default
-    private Map<String, Integer> numberOfIncomingNode = new HashMap<>();
+    private Map<String, Integer> numberOfLoadedReplica;
+    private Map<String, Integer> numberOfOutgoingNode;
+    private Map<String, Integer> numberOfIncomingNode;
     private ResourceGroupConfig config;
-    @Builder.Default
-    private List<NodeInfo> nodes = new ArrayList<>();
+    private List<NodeInfo> nodes;
+
+    private DescribeResourceGroupResp(Builder builder) {
+        this.groupName = builder.groupName;
+        this.capacity = builder.capacity;
+        this.numberOfAvailableNode = builder.numberOfAvailableNode;
+        this.numberOfLoadedReplica = builder.numberOfLoadedReplica;
+        this.numberOfOutgoingNode = builder.numberOfOutgoingNode;
+        this.numberOfIncomingNode = builder.numberOfIncomingNode;
+        this.config = builder.config;
+        this.nodes = builder.nodes;
+    }
+
+    public static Builder builder() {
+        return new Builder();
+    }
+
+    public String getGroupName() {
+        return groupName;
+    }
+
+    public void setGroupName(String groupName) {
+        this.groupName = groupName;
+    }
+
+    public Integer getCapacity() {
+        return capacity;
+    }
+
+    public void setCapacity(Integer capacity) {
+        this.capacity = capacity;
+    }
+
+    public Integer getNumberOfAvailableNode() {
+        return numberOfAvailableNode;
+    }
+
+    public void setNumberOfAvailableNode(Integer numberOfAvailableNode) {
+        this.numberOfAvailableNode = numberOfAvailableNode;
+    }
+
+    public Map<String, Integer> getNumberOfLoadedReplica() {
+        return numberOfLoadedReplica;
+    }
+
+    public void setNumberOfLoadedReplica(Map<String, Integer> numberOfLoadedReplica) {
+        this.numberOfLoadedReplica = numberOfLoadedReplica;
+    }
+
+    public Map<String, Integer> getNumberOfOutgoingNode() {
+        return numberOfOutgoingNode;
+    }
+
+    public void setNumberOfOutgoingNode(Map<String, Integer> numberOfOutgoingNode) {
+        this.numberOfOutgoingNode = numberOfOutgoingNode;
+    }
+
+    public Map<String, Integer> getNumberOfIncomingNode() {
+        return numberOfIncomingNode;
+    }
+
+    public void setNumberOfIncomingNode(Map<String, Integer> numberOfIncomingNode) {
+        this.numberOfIncomingNode = numberOfIncomingNode;
+    }
+
+    public ResourceGroupConfig getConfig() {
+        return config;
+    }
+
+    public void setConfig(ResourceGroupConfig config) {
+        this.config = config;
+    }
+
+    public List<NodeInfo> getNodes() {
+        return nodes;
+    }
+
+    public void setNodes(List<NodeInfo> nodes) {
+        this.nodes = nodes;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) return true;
+        if (obj == null || getClass() != obj.getClass()) return false;
+        DescribeResourceGroupResp that = (DescribeResourceGroupResp) obj;
+        return new EqualsBuilder()
+                .append(groupName, that.groupName)
+                .append(capacity, that.capacity)
+                .append(numberOfAvailableNode, that.numberOfAvailableNode)
+                .append(numberOfLoadedReplica, that.numberOfLoadedReplica)
+                .append(numberOfOutgoingNode, that.numberOfOutgoingNode)
+                .append(numberOfIncomingNode, that.numberOfIncomingNode)
+                .append(config, that.config)
+                .append(nodes, that.nodes)
+                .isEquals();
+    }
+
+    @Override
+    public int hashCode() {
+        return new HashCodeBuilder(17, 37)
+                .append(groupName)
+                .append(capacity)
+                .append(numberOfAvailableNode)
+                .append(numberOfLoadedReplica)
+                .append(numberOfOutgoingNode)
+                .append(numberOfIncomingNode)
+                .append(config)
+                .append(nodes)
+                .toHashCode();
+    }
+
+    @Override
+    public String toString() {
+        return "DescribeResourceGroupResp{" +
+                "groupName='" + groupName + '\'' +
+                ", capacity=" + capacity +
+                ", numberOfAvailableNode=" + numberOfAvailableNode +
+                ", numberOfLoadedReplica=" + numberOfLoadedReplica +
+                ", numberOfOutgoingNode=" + numberOfOutgoingNode +
+                ", numberOfIncomingNode=" + numberOfIncomingNode +
+                ", config=" + config +
+                ", nodes=" + nodes +
+                '}';
+    }
+
+    public static class Builder {
+        private String groupName;
+        private Integer capacity;
+        private Integer numberOfAvailableNode;
+        private ResourceGroupConfig config;
+        private Map<String, Integer> numberOfLoadedReplica = new HashMap<>();
+        private Map<String, Integer> numberOfOutgoingNode = new HashMap<>();
+        private Map<String, Integer> numberOfIncomingNode = new HashMap<>();
+        private List<NodeInfo> nodes = new ArrayList<>();
+
+        public Builder groupName(String groupName) {
+            this.groupName = groupName;
+            return this;
+        }
+
+        public Builder capacity(Integer capacity) {
+            this.capacity = capacity;
+            return this;
+        }
+
+        public Builder numberOfAvailableNode(Integer numberOfAvailableNode) {
+            this.numberOfAvailableNode = numberOfAvailableNode;
+            return this;
+        }
+
+        public Builder numberOfLoadedReplica(Map<String, Integer> numberOfLoadedReplica) {
+            this.numberOfLoadedReplica = numberOfLoadedReplica;
+            return this;
+        }
+
+        public Builder numberOfOutgoingNode(Map<String, Integer> numberOfOutgoingNode) {
+            this.numberOfOutgoingNode = numberOfOutgoingNode;
+            return this;
+        }
+
+        public Builder numberOfIncomingNode(Map<String, Integer> numberOfIncomingNode) {
+            this.numberOfIncomingNode = numberOfIncomingNode;
+            return this;
+        }
+
+        public Builder config(ResourceGroupConfig config) {
+            this.config = config;
+            return this;
+        }
+
+        public Builder nodes(List<NodeInfo> nodes) {
+            this.nodes = nodes;
+            return this;
+        }
+
+        public DescribeResourceGroupResp build() {
+            return new DescribeResourceGroupResp(this);
+        }
+    }
 }

+ 56 - 7
sdk-core/src/main/java/io/milvus/v2/service/resourcegroup/response/ListResourceGroupsResp.java

@@ -1,15 +1,64 @@
 package io.milvus.v2.service.resourcegroup.response;
 
-import lombok.Builder;
-import lombok.Data;
-import lombok.experimental.SuperBuilder;
+import org.apache.commons.lang3.builder.EqualsBuilder;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
 
 import java.util.ArrayList;
 import java.util.List;
 
-@Data
-@SuperBuilder
 public class ListResourceGroupsResp {
-    @Builder.Default
-    private List<String> groupNames = new ArrayList<>();
+    private List<String> groupNames;
+
+    private ListResourceGroupsResp(Builder builder) {
+        this.groupNames = builder.groupNames;
+    }
+
+    public static Builder builder() {
+        return new Builder();
+    }
+
+    public List<String> getGroupNames() {
+        return groupNames;
+    }
+
+    public void setGroupNames(List<String> groupNames) {
+        this.groupNames = groupNames;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) return true;
+        if (obj == null || getClass() != obj.getClass()) return false;
+        ListResourceGroupsResp that = (ListResourceGroupsResp) obj;
+        return new EqualsBuilder()
+                .append(groupNames, that.groupNames)
+                .isEquals();
+    }
+
+    @Override
+    public int hashCode() {
+        return new HashCodeBuilder(17, 37)
+                .append(groupNames)
+                .toHashCode();
+    }
+
+    @Override
+    public String toString() {
+        return "ListResourceGroupsResp{" +
+                "groupNames=" + groupNames +
+                '}';
+    }
+
+    public static class Builder {
+        private List<String> groupNames = new ArrayList<>();
+
+        public Builder groupNames(List<String> groupNames) {
+            this.groupNames = groupNames;
+            return this;
+        }
+
+        public ListResourceGroupsResp build() {
+            return new ListResourceGroupsResp(this);
+        }
+    }
 }