1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.common.rest.api.beans;
20
21 import java.util.HashSet;
22 import java.util.Set;
23 import java.util.stream.Collectors;
24 import java.util.stream.Stream;
25 import javax.validation.constraints.NotNull;
26 import javax.ws.rs.DefaultValue;
27 import javax.ws.rs.QueryParam;
28 import org.apache.syncope.common.lib.SyncopeConstants;
29 import org.apache.syncope.common.lib.types.ConflictResolutionAction;
30
31 public class CSVPullSpec extends AbstractCSVSpec {
32
33 private static final long serialVersionUID = -5079876176017613587L;
34
35 public static class Builder extends AbstractCSVSpec.Builder<CSVPullSpec, Builder> {
36
37 @Override
38 protected CSVPullSpec newInstance() {
39 return new CSVPullSpec();
40 }
41
42 public Builder(final String anyTypeKey, final String keyColumn) {
43 getInstance().setAnyTypeKey(anyTypeKey);
44 getInstance().setKeyColumn(keyColumn);
45 }
46
47 public Builder remediation(final boolean remediation) {
48 instance.setRemediation(remediation);
49 return this;
50 }
51
52 public Builder ignoreColumns(final String... ignoreColumns) {
53 instance.getIgnoreColumns().addAll(Stream.of(ignoreColumns).collect(Collectors.toList()));
54 return this;
55 }
56
57 public Builder destinationRealm(final String destinationRealm) {
58 instance.setDestinationRealm(destinationRealm);
59 return this;
60 }
61
62 public Builder conflictResolutionAction(final ConflictResolutionAction conflictResolutionAction) {
63 instance.setConflictResolutionAction(conflictResolutionAction);
64 return this;
65 }
66
67 public Builder pullCorrelationRule(final String pullCorrelationRule) {
68 instance.setPullCorrelationRule(pullCorrelationRule);
69 return this;
70 }
71 }
72
73 private String destinationRealm = SyncopeConstants.ROOT_REALM;
74
75 private String keyColumn;
76
77 private Set<String> ignoreColumns = new HashSet<>();
78
79 private Boolean remediation;
80
81 private ConflictResolutionAction conflictResolutionAction = ConflictResolutionAction.IGNORE;
82
83 private String pullCorrelationRule;
84
85 public String getDestinationRealm() {
86 return destinationRealm;
87 }
88
89 @QueryParam("destinationRealm")
90 public void setDestinationRealm(final String destinationRealm) {
91 this.destinationRealm = destinationRealm;
92 }
93
94 public String getKeyColumn() {
95 return keyColumn;
96 }
97
98 @NotNull
99 @QueryParam("keyColumn")
100 public void setKeyColumn(final String keyColumn) {
101 this.keyColumn = keyColumn;
102 }
103
104 public Set<String> getIgnoreColumns() {
105 return ignoreColumns;
106 }
107
108 @QueryParam("ignoreColumns")
109 public void setIgnoreColumns(final Set<String> ignoreColumns) {
110 this.ignoreColumns = ignoreColumns;
111 }
112
113 public Boolean getRemediation() {
114 return remediation == null ? Boolean.FALSE : remediation;
115 }
116
117 @QueryParam("remediation")
118 @DefaultValue("false")
119 public void setRemediation(final boolean remediation) {
120 this.remediation = remediation;
121 }
122
123 public ConflictResolutionAction getConflictResolutionAction() {
124 return conflictResolutionAction;
125 }
126
127 @QueryParam("conflictResolutionAction")
128 public void setConflictResolutionAction(final ConflictResolutionAction conflictResolutionAction) {
129 this.conflictResolutionAction = conflictResolutionAction;
130 }
131
132 public String getPullCorrelationRule() {
133 return pullCorrelationRule;
134 }
135
136 @QueryParam("pullCorrelationRule")
137 public void setPullCorrelationRule(final String pullCorrelationRule) {
138 this.pullCorrelationRule = pullCorrelationRule;
139 }
140 }