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