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.panels;
20
21 import java.io.Serializable;
22 import java.util.ArrayList;
23 import java.util.Collection;
24 import java.util.List;
25 import java.util.stream.Collectors;
26
27 public class ConfParam implements Serializable {
28
29 private static final long serialVersionUID = -9162995157523535429L;
30
31 private String schema;
32
33 private final List<Serializable> values = new ArrayList<>();
34
35 private boolean multivalue;
36
37 public String getSchema() {
38 return schema;
39 }
40
41 public void setSchema(final String schema) {
42 this.schema = schema;
43 }
44
45 public List<Serializable> getValues() {
46 return values;
47 }
48
49 public Object valueAsObject() {
50 return multivalue
51 ? values
52 : values.isEmpty()
53 ? null
54 : values.get(0);
55 }
56
57 public void setValues(final Object value) {
58 this.values.clear();
59 if (value instanceof Collection) {
60 this.values.addAll(((Collection<?>) value).stream().
61 filter(Serializable.class::isInstance).
62 map(Serializable.class::cast).
63 collect(Collectors.toList()));
64 this.multivalue = true;
65 } else {
66 this.values.add((Serializable) value);
67 this.multivalue = false;
68 }
69 }
70
71 public void setMultivalue(final boolean multivalue) {
72 this.multivalue = multivalue;
73 }
74
75 public boolean isMultivalue() {
76 return multivalue;
77 }
78
79 public boolean isInstance(final Class<?> clazz) {
80 return !values.isEmpty() && clazz.isInstance(values.get(0));
81 }
82
83 @Override
84 public String toString() {
85 return "ConfParam{"
86 + "schema=" + schema
87 + ", values=" + values
88 + ", multivalue=" + multivalue
89 + '}';
90 }
91 }