View Javadoc
1   package de.dlr.shepard.auth.users.io;
2   
3   import de.dlr.shepard.auth.users.entities.User;
4   import de.dlr.shepard.auth.users.entities.UserGroup;
5   import de.dlr.shepard.common.neo4j.io.BasicEntityIO;
6   import de.dlr.shepard.common.util.HasId;
7   import jakarta.validation.constraints.NotNull;
8   import lombok.Data;
9   import lombok.NoArgsConstructor;
10  import org.eclipse.microprofile.openapi.annotations.media.Schema;
11  
12  @Data
13  @NoArgsConstructor
14  @Schema(name = "UserGroup")
15  public class UserGroupIO extends BasicEntityIO {
16  
17    @NotNull
18    @Schema(required = true)
19    private String[] usernames;
20  
21    public UserGroupIO(UserGroup userGroup) {
22      super(userGroup);
23      this.usernames = userGroup.getUsers().stream().map(User::getUsername).toArray(String[]::new);
24    }
25  
26    @Override
27    public boolean equals(Object o) {
28      if (this == o) return true;
29      if (o == null) return false;
30      if (!super.equals(o)) return false;
31      if (this.getClass() != o.getClass()) return false;
32      UserGroupIO other = (UserGroupIO) o;
33      return (HasId.areEqualSets(usernames, other.usernames));
34    }
35  
36    @Override
37    public int hashCode() {
38      final int prime = 31;
39      int result = super.hashCode();
40      result = prime * result + HasId.hashcodeHelper(usernames);
41      return result;
42    }
43  }