1 package net.sumaris.core.vo.referential;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 import net.sumaris.core.model.referential.pmfm.Parameter;
26 import net.sumaris.core.model.referential.pmfm.Pmfm;
27
28 import java.util.Objects;
29
30 public enum ParameterValueType {
31
32 INTEGER,
33 DOUBLE,
34 STRING,
35 QUALITATIVE_VALUE,
36 BOOLEAN,
37 DATE
38 ;
39
40 public static ParameterValueType fromPmfm(Pmfm source) {
41
42 Parameter parameter = source.getParameter();
43
44
45 if (Objects.equals(Boolean.TRUE, parameter.getIsBoolean())) {
46 return BOOLEAN;
47 }
48 else if (Objects.equals(Boolean.TRUE, parameter.getIsQualitative())) {
49 return QUALITATIVE_VALUE;
50 }
51 else if (Objects.equals(Boolean.TRUE, parameter.getIsAlphanumeric())) {
52 return ParameterValueType.STRING;
53 }
54
55 else if (Objects.equals(Boolean.TRUE, parameter.getIsDate())) {
56 return ParameterValueType.DATE;
57 }
58 else if (source.getMaximumNumberDecimals() == null || source.getMaximumNumberDecimals() > 0) {
59 return ParameterValueType.DOUBLE;
60 }
61
62 else {
63 return ParameterValueType.INTEGER;
64 }
65 }
66
67 public static ParameterValueType fromPmfm(PmfmVO pmfm) {
68 return pmfm != null ? fromString(pmfm.getType()) : null;
69 }
70
71 public static ParameterValueType fromString(String name) {
72 switch (name.toUpperCase()) {
73 case "BOOLEAN":
74 return ParameterValueType.BOOLEAN;
75 case "QUALITATIVE_VALUE":
76 return ParameterValueType.QUALITATIVE_VALUE;
77 case "STRING":
78 return ParameterValueType.STRING;
79 case "DATE":
80 return ParameterValueType.DATE;
81 case "INTEGER":
82 return ParameterValueType.INTEGER;
83 case "DOUBLE":
84 return ParameterValueType.DOUBLE;
85 default:
86 return null;
87 }
88 }
89 }