1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.client.console.rest;
20
21 import java.util.Comparator;
22 import java.util.List;
23 import java.util.stream.Collectors;
24 import org.apache.syncope.common.lib.policy.PolicyTO;
25 import org.apache.syncope.common.lib.types.PolicyType;
26 import org.apache.syncope.common.rest.api.service.PolicyService;
27
28
29
30
31 public class PolicyRestClient extends BaseRestClient {
32
33 private static final long serialVersionUID = -1392090291817187902L;
34
35 protected static final Comparator<PolicyTO> COMPARATOR = Comparator.comparing(PolicyTO::getName);
36
37 public <T extends PolicyTO> T read(final PolicyType type, final String key) {
38 T policy = null;
39 try {
40 policy = getService(PolicyService.class).read(type, key);
41 } catch (Exception e) {
42 LOG.warn("No policy found for type {} and key {}", type, key, e);
43 }
44 return policy;
45 }
46
47 @SuppressWarnings("unchecked")
48 public <T extends PolicyTO> List<T> list(final PolicyType type) {
49 try {
50 return getService(PolicyService.class).<T>list(type).stream().
51 sorted(COMPARATOR).
52 collect(Collectors.toList());
53 } catch (Exception ignore) {
54 LOG.debug("No policy found", ignore);
55 return List.of();
56 }
57 }
58
59 public <T extends PolicyTO> void create(final PolicyType type, final T policy) {
60 getService(PolicyService.class).create(type, policy);
61 }
62
63 public <T extends PolicyTO> void update(final PolicyType type, final T policy) {
64 getService(PolicyService.class).update(type, policy);
65 }
66
67 public void delete(final PolicyType type, final String key) {
68 getService(PolicyService.class).delete(type, key);
69 }
70 }