1 package de.dlr.shepard.auth.users.entities; 2 3 import de.dlr.shepard.auth.permission.model.Permissions; 4 import de.dlr.shepard.common.neo4j.entities.BasicEntity; 5 import de.dlr.shepard.common.util.Constants; 6 import de.dlr.shepard.common.util.HasId; 7 import java.util.ArrayList; 8 import java.util.List; 9 import java.util.Objects; 10 import lombok.Data; 11 import lombok.NoArgsConstructor; 12 import lombok.ToString; 13 import org.neo4j.ogm.annotation.NodeEntity; 14 import org.neo4j.ogm.annotation.Relationship; 15 import org.neo4j.ogm.annotation.Relationship.Direction; 16 17 @NodeEntity 18 @Data 19 @ToString(callSuper = true) 20 @NoArgsConstructor 21 public class UserGroup extends BasicEntity { 22 23 @Relationship(type = Constants.IS_IN_GROUP, direction = Direction.INCOMING) 24 private List<User> users = new ArrayList<>(); 25 26 @ToString.Exclude 27 @Relationship(type = Constants.HAS_PERMISSIONS) 28 private Permissions permissions; 29 30 public UserGroup(long id) { 31 super(id); 32 } 33 34 @Override 35 public int hashCode() { 36 final int prime = 31; 37 int result = super.hashCode(); 38 result = prime * result + Objects.hash(users); 39 result = prime * result + HasId.hashcodeHelper(permissions); 40 return result; 41 } 42 43 @Override 44 public boolean equals(Object obj) { 45 if (this == obj) return true; 46 if (!super.equals(obj)) return false; 47 if (!(obj instanceof UserGroup)) return false; 48 UserGroup other = (UserGroup) obj; 49 return Objects.equals(users, other.users) && HasId.equalsHelper(permissions, other.permissions); 50 } 51 }