2 * Copyright (c) 2016 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.genius.mdsalutil;
10 import java.math.BigInteger;
11 import java.util.List;
12 import java.util.Objects;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupId;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupTypes;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.GroupBuilder;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.GroupKey;
17 import org.opendaylight.yangtools.util.EvenMoreObjects;
19 public class GroupEntity extends AbstractSwitchEntity {
20 private static final long serialVersionUID = 1L;
23 private String groupName;
24 private GroupTypes groupType;
25 private List<BucketInfo> bucketInfos;
27 private transient GroupBuilder groupBuilder;
29 public GroupEntity(BigInteger dpnId) {
33 public GroupEntity(long dpnId) {
34 this(BigInteger.valueOf(dpnId));
38 public String toString() {
39 return "GroupEntity [dpnId=" + getDpnId() + ", groupId=" + groupId + ", groupName=" + groupName
40 + ", groupType=" + groupType + ", bucketInfo=" + bucketInfos + "]";
43 public List<BucketInfo> getBucketInfoList() {
47 public GroupBuilder getGroupBuilder() {
48 if (groupBuilder == null) {
49 groupBuilder = new GroupBuilder();
51 GroupId groupId = new GroupId(getGroupId());
52 groupBuilder.setKey(new GroupKey(groupId));
53 groupBuilder.setGroupId(groupId);
55 groupBuilder.setGroupName(getGroupName());
56 groupBuilder.setGroupType(getGroupType());
57 groupBuilder.setBuckets(MDSALUtil.buildBuckets(getBucketInfoList()));
63 public long getGroupId() {
67 public String getGroupName() {
71 public GroupTypes getGroupType() {
75 public void setBucketInfoList(List<BucketInfo> listBucketInfo) {
76 this.bucketInfos = listBucketInfo;
79 public void setGroupId(long groupIdAsLong) {
80 this.groupId = groupIdAsLong;
81 if (this.groupBuilder != null) {
82 GroupId groupId = new GroupId(getGroupId());
83 this.groupBuilder.setKey(new GroupKey(groupId));
84 this.groupBuilder.setGroupId(groupId);
88 public void setGroupName(String groupName) {
89 this.groupName = groupName;
90 this.groupBuilder = null;
93 public void setGroupType(GroupTypes groupType) {
94 this.groupType = groupType;
95 this.groupBuilder = null;
99 public int hashCode() {
100 return Objects.hash(getDpnId(), groupId, groupName, groupType, bucketInfos);
104 public boolean equals(Object obj) {
105 return EvenMoreObjects.equalsHelper(this, obj,
106 (self, other) -> Objects.equals(self.getDpnId(), other.getDpnId())
107 && Objects.equals(this.groupId, other.groupId)
108 && Objects.equals(this.groupName, other.groupName)
109 && Objects.equals(this.groupType, other.groupType)
110 && Objects.equals(this.bucketInfos, other.bucketInfos));