1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.common.lib.wa;
20
21 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
22 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
23 import java.util.ArrayList;
24 import java.util.Collection;
25 import java.util.List;
26 import org.apache.commons.lang3.builder.EqualsBuilder;
27 import org.apache.commons.lang3.builder.HashCodeBuilder;
28 import org.apache.commons.lang3.builder.ToStringBuilder;
29 import org.apache.syncope.common.lib.BaseBean;
30
31 public class WebAuthnAccount implements BaseBean {
32
33 private static final long serialVersionUID = 2285073386484048953L;
34
35 public static class Builder {
36
37 private final WebAuthnAccount instance = new WebAuthnAccount();
38
39 public WebAuthnAccount.Builder credential(final WebAuthnDeviceCredential credential) {
40 instance.getCredentials().add(credential);
41 return this;
42 }
43
44 public WebAuthnAccount.Builder credentials(final WebAuthnDeviceCredential... credentials) {
45 instance.getCredentials().addAll(List.of(credentials));
46 return this;
47 }
48
49 public WebAuthnAccount.Builder credentials(final Collection<WebAuthnDeviceCredential> credentials) {
50 instance.getCredentials().addAll(credentials);
51 return this;
52 }
53
54 public WebAuthnAccount build() {
55 return instance;
56 }
57 }
58
59 private final List<WebAuthnDeviceCredential> credentials = new ArrayList<>();
60
61 @JacksonXmlElementWrapper(localName = "credentials")
62 @JacksonXmlProperty(localName = "credential")
63 public List<WebAuthnDeviceCredential> getCredentials() {
64 return credentials;
65 }
66
67 @Override
68 public int hashCode() {
69 return new HashCodeBuilder()
70 .appendSuper(super.hashCode())
71 .append(credentials)
72 .toHashCode();
73 }
74
75 @Override
76 public boolean equals(final Object obj) {
77 if (obj == null) {
78 return false;
79 }
80 if (obj == this) {
81 return true;
82 }
83 if (obj.getClass() != getClass()) {
84 return false;
85 }
86 WebAuthnAccount rhs = (WebAuthnAccount) obj;
87 return new EqualsBuilder()
88 .appendSuper(super.equals(obj))
89 .append(this.credentials, rhs.credentials)
90 .isEquals();
91 }
92
93 @Override
94 public String toString() {
95 return new ToStringBuilder(this)
96 .append("credentials", credentials)
97 .toString();
98 }
99 }