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