View Javadoc
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  }