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.request;
20
21 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
22 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
23 import java.util.Collection;
24 import java.util.HashSet;
25 import java.util.List;
26 import java.util.Set;
27 import org.apache.commons.lang3.builder.EqualsBuilder;
28 import org.apache.commons.lang3.builder.HashCodeBuilder;
29 import org.apache.syncope.common.lib.Attr;
30
31 public class MembershipUR extends AbstractPatch {
32
33 private static final long serialVersionUID = -6783121761221554433L;
34
35 public static class Builder extends AbstractPatch.Builder<MembershipUR, Builder> {
36
37 public Builder(final String group) {
38 super();
39 getInstance().setGroup(group);
40 }
41
42 @Override
43 protected MembershipUR newInstance() {
44 return new MembershipUR();
45 }
46
47 public Builder plainAttr(final Attr plainAttr) {
48 getInstance().getPlainAttrs().add(plainAttr);
49 return this;
50 }
51
52 public Builder plainAttrs(final Attr... plainAttrs) {
53 getInstance().getPlainAttrs().addAll(List.of(plainAttrs));
54 return this;
55 }
56
57 public Builder plainAttrs(final Collection<Attr> plainAttrs) {
58 getInstance().getPlainAttrs().addAll(plainAttrs);
59 return this;
60 }
61
62 public Builder virAttr(final Attr virAttr) {
63 getInstance().getVirAttrs().add(virAttr);
64 return this;
65 }
66
67 public Builder virAttrs(final Attr... virAttrs) {
68 getInstance().getVirAttrs().addAll(List.of(virAttrs));
69 return this;
70 }
71
72 public Builder virAttrs(final Collection<Attr> virAttrs) {
73 getInstance().getVirAttrs().addAll(virAttrs);
74 return this;
75 }
76 }
77
78 private String group;
79
80 private final Set<Attr> plainAttrs = new HashSet<>();
81
82 private final Set<Attr> virAttrs = new HashSet<>();
83
84 public String getGroup() {
85 return group;
86 }
87
88 public void setGroup(final String group) {
89 this.group = group;
90 }
91
92 @JacksonXmlElementWrapper(localName = "plainAttrs")
93 @JacksonXmlProperty(localName = "plainAttr")
94 public Set<Attr> getPlainAttrs() {
95 return plainAttrs;
96 }
97
98 @JacksonXmlElementWrapper(localName = "virAttrs")
99 @JacksonXmlProperty(localName = "virAttr")
100 public Set<Attr> getVirAttrs() {
101 return virAttrs;
102 }
103
104 @Override
105 public int hashCode() {
106 return new HashCodeBuilder().
107 appendSuper(super.hashCode()).
108 append(group).
109 append(plainAttrs).
110 append(virAttrs).
111 build();
112 }
113
114 @Override
115 public boolean equals(final Object obj) {
116 if (this == obj) {
117 return true;
118 }
119 if (obj == null) {
120 return false;
121 }
122 if (getClass() != obj.getClass()) {
123 return false;
124 }
125 final MembershipUR other = (MembershipUR) obj;
126 return new EqualsBuilder().
127 appendSuper(super.equals(obj)).
128 append(group, other.group).
129 append(plainAttrs, other.plainAttrs).
130 append(virAttrs, other.virAttrs).
131 build();
132 }
133 }