Skip to content

Commit 6e0393c

Browse files
committed
[SYNCOPE-1924] - Fix methods retainAll, removeAll and removeIf in PropagationByResource
1 parent d0a6d1d commit 6e0393c

File tree

2 files changed

+66
-110
lines changed

2 files changed

+66
-110
lines changed

core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/PropagationByResource.java

Lines changed: 39 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -87,21 +87,11 @@ public final void purge() {
8787
* @return whether the operation was successful or not
8888
*/
8989
public final boolean add(final ResourceOperation type, final T key) {
90-
Set<T> set;
91-
switch (type) {
92-
case CREATE:
93-
set = toBeCreated;
94-
break;
95-
96-
case UPDATE:
97-
set = toBeUpdated;
98-
break;
99-
100-
case DELETE:
101-
default:
102-
set = toBeDeleted;
103-
break;
104-
}
90+
Set<T> set = switch (type) {
91+
case CREATE -> toBeCreated;
92+
case UPDATE -> toBeUpdated;
93+
default -> toBeDeleted;
94+
};
10595

10696
return set.add(key);
10797
}
@@ -114,21 +104,11 @@ public final boolean add(final ResourceOperation type, final T key) {
114104
* @return whether the operation was successful or not
115105
*/
116106
public boolean addAll(final ResourceOperation type, final Collection<T> keys) {
117-
Set<T> set;
118-
switch (type) {
119-
case CREATE:
120-
set = toBeCreated;
121-
break;
122-
123-
case UPDATE:
124-
set = toBeUpdated;
125-
break;
126-
127-
case DELETE:
128-
default:
129-
set = toBeDeleted;
130-
break;
131-
}
107+
Set<T> set = switch (type) {
108+
case CREATE -> toBeCreated;
109+
case UPDATE -> toBeUpdated;
110+
default -> toBeDeleted;
111+
};
132112

133113
return set.addAll(keys);
134114
}
@@ -141,25 +121,12 @@ public boolean addAll(final ResourceOperation type, final Collection<T> keys) {
141121
* @return whether the operation was successful or not
142122
*/
143123
public final boolean remove(final ResourceOperation type, final T key) {
144-
boolean result = false;
145-
146-
switch (type) {
147-
case CREATE:
148-
result = toBeCreated.remove(key);
149-
break;
150-
151-
case UPDATE:
152-
result = toBeUpdated.remove(key);
153-
break;
154-
155-
case DELETE:
156-
result = toBeDeleted.remove(key);
157-
break;
158-
159-
default:
160-
}
161-
162-
return result;
124+
return switch (type) {
125+
case CREATE -> toBeCreated.remove(key);
126+
case UPDATE -> toBeUpdated.remove(key);
127+
case DELETE -> toBeDeleted.remove(key);
128+
default -> false;
129+
};
163130
}
164131

165132
/**
@@ -170,21 +137,11 @@ public final boolean remove(final ResourceOperation type, final T key) {
170137
* @return whether the operation was successful or not
171138
*/
172139
public boolean removeAll(final ResourceOperation type, final Set<T> keys) {
173-
Set<T> set;
174-
switch (type) {
175-
case CREATE:
176-
set = toBeCreated;
177-
break;
178-
179-
case UPDATE:
180-
set = toBeUpdated;
181-
break;
182-
183-
case DELETE:
184-
default:
185-
set = toBeDeleted;
186-
break;
187-
}
140+
Set<T> set = switch (type) {
141+
case CREATE -> toBeCreated;
142+
case UPDATE -> toBeUpdated;
143+
default -> toBeDeleted;
144+
};
188145

189146
return set.removeAll(keys);
190147
}
@@ -198,8 +155,8 @@ public boolean removeAll(final ResourceOperation type, final Set<T> keys) {
198155
*/
199156
public boolean removeAll(final Collection<T> keys) {
200157
return toBeCreated.removeAll(keys)
201-
|| toBeUpdated.removeAll(keys)
202-
|| toBeDeleted.removeAll(keys);
158+
| toBeUpdated.removeAll(keys)
159+
| toBeDeleted.removeAll(keys);
203160
}
204161

205162
/**
@@ -211,8 +168,8 @@ public boolean removeAll(final Collection<T> keys) {
211168
*/
212169
public boolean removeIf(final Predicate<? super T> filter) {
213170
return toBeCreated.removeIf(filter)
214-
|| toBeUpdated.removeIf(filter)
215-
|| toBeDeleted.removeIf(filter);
171+
| toBeUpdated.removeIf(filter)
172+
| toBeDeleted.removeIf(filter);
216173
}
217174

218175
/**
@@ -225,30 +182,17 @@ public boolean removeIf(final Predicate<? super T> filter) {
225182
*/
226183
public boolean retainAll(final Collection<T> keys) {
227184
return toBeCreated.retainAll(keys)
228-
|| toBeUpdated.retainAll(keys)
229-
|| toBeDeleted.retainAll(keys);
185+
| toBeUpdated.retainAll(keys)
186+
| toBeDeleted.retainAll(keys);
230187
}
231188

232189
public boolean contains(final ResourceOperation type, final T key) {
233-
boolean result = false;
234-
235-
switch (type) {
236-
case CREATE:
237-
result = toBeCreated.contains(key);
238-
break;
239-
240-
case UPDATE:
241-
result = toBeUpdated.contains(key);
242-
break;
243-
244-
case DELETE:
245-
result = toBeDeleted.contains(key);
246-
break;
247-
248-
default:
249-
}
250-
251-
return result;
190+
return switch (type) {
191+
case CREATE -> toBeCreated.contains(key);
192+
case UPDATE -> toBeUpdated.contains(key);
193+
case DELETE -> toBeDeleted.contains(key);
194+
default -> false;
195+
};
252196
}
253197

254198
public boolean contains(final T key) {
@@ -264,25 +208,12 @@ public boolean contains(final T key) {
264208
* @return resource matching the given type
265209
*/
266210
public final Set<T> get(final ResourceOperation type) {
267-
Set<T> result = Set.of();
268-
269-
switch (type) {
270-
case CREATE:
271-
result = toBeCreated;
272-
break;
273-
274-
case UPDATE:
275-
result = toBeUpdated;
276-
break;
277-
278-
case DELETE:
279-
result = toBeDeleted;
280-
break;
281-
282-
default:
283-
}
284-
285-
return result;
211+
return switch (type) {
212+
case CREATE -> toBeCreated;
213+
case UPDATE -> toBeUpdated;
214+
case DELETE -> toBeDeleted;
215+
default -> Set.of();
216+
};
286217
}
287218

288219
public Map<T, ResourceOperation> asMap() {

core/provisioning-api/src/test/java/org/apache/syncope/core/provisioning/api/PropagationByResourceTest.java

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,13 +116,38 @@ public void remove() {
116116
@Test
117117
public void removeAll() {
118118
Set<String> keys = new HashSet<>();
119-
keys.add("testKey1");
120-
keys.add("testKey2");
119+
String key1 = "key1";
120+
String key2 = "key2";
121+
keys.add(key1);
122+
keys.add(key2);
121123

122124
assertFalse(propagationByResource.removeAll(ResourceOperation.CREATE, keys));
123125
assertFalse(propagationByResource.removeAll(ResourceOperation.UPDATE, keys));
124126
assertFalse(propagationByResource.removeAll(ResourceOperation.DELETE, keys));
125127
assertFalse(propagationByResource.removeAll(ResourceOperation.NONE, keys));
128+
129+
propagationByResource.add(ResourceOperation.CREATE, key1);
130+
propagationByResource.add(ResourceOperation.UPDATE, key2);
131+
assertTrue(propagationByResource.removeAll(keys));
132+
assertFalse(propagationByResource.contains(key1));
133+
assertFalse(propagationByResource.contains(key2));
134+
}
135+
136+
@Test
137+
public void retainAll() {
138+
Set<String> keys = new HashSet<>();
139+
String key1 = "key1";
140+
String key2 = "key2";
141+
String key3 = "key3";
142+
keys.add(key1);
143+
144+
propagationByResource.add(ResourceOperation.CREATE, key1);
145+
propagationByResource.add(ResourceOperation.UPDATE, key2);
146+
propagationByResource.add(ResourceOperation.DELETE, key3);
147+
assertTrue(propagationByResource.retainAll(keys));
148+
assertTrue(propagationByResource.contains(key1));
149+
assertFalse(propagationByResource.contains(key2));
150+
assertFalse(propagationByResource.contains(key3));
126151
}
127152

128153
@Test

0 commit comments

Comments
 (0)