1 package fr.ifremer.tutti.service.bigfin.signs;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 import com.google.common.base.Function;
28 import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId;
29 import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueId;
30 import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
31 import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
32 import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValues;
33 import fr.ifremer.tutti.service.bigfin.csv.BigfinDataRow;
34
35 import java.util.Map;
36
37
38
39
40
41
42
43 public enum Sex implements Sign {
44
45 NONE("NONE") {
46 @Override
47 public Integer getCategory() {
48 return PmfmId.SEX.getValue();
49 }
50
51 @Override
52 public Integer getQualitativeValueId() {
53 return QualitativeValueId.NON_SEXED_SEX.getValue();
54 }
55
56 @Override
57 public boolean isNullEquivalent(int parentSignChildrenNb) {
58 return parentSignChildrenNb == 1;
59 }
60 },
61 UNKNOWN("UNKNOWN") {
62 @Override
63 public Integer getCategory() {
64 return PmfmId.SEX.getValue();
65 }
66
67 @Override
68 public Integer getQualitativeValueId() {
69 return QualitativeValueId.SEX_UNDEFINED.getValue();
70 }
71
72 @Override
73 public boolean isNullEquivalent(int parentSignChildrenNb) {
74 return false;
75 }
76 },
77 MALE("MALE") {
78 @Override
79 public Integer getCategory() {
80 return PmfmId.SEX.getValue();
81 }
82
83 @Override
84 public Integer getQualitativeValueId() {
85 return QualitativeValueId.SEX_MALE.getValue();
86 }
87
88 @Override
89 public boolean isNullEquivalent(int parentSignChildrenNb) {
90 return false;
91 }
92 },
93 FEMALE("FEMALE") {
94 @Override
95 public Integer getCategory() {
96 return PmfmId.SEX.getValue();
97 }
98
99 @Override
100 public Integer getQualitativeValueId() {
101 return QualitativeValueId.SEX_FEMALE.getValue();
102 }
103
104 @Override
105 public boolean isNullEquivalent(int parentSignChildrenNb) {
106 return false;
107 }
108 };
109
110 private String sign;
111
112 Sex(String sign) {
113 this.sign = sign;
114 }
115
116 @Override
117 public String getSign() {
118 return sign;
119 }
120
121 @Override
122 public void registerSign(Caracteristic caracteristic, Map<Sign, CaracteristicQualitativeValue> map) {
123 Integer valueId = getQualitativeValueId();
124 CaracteristicQualitativeValue result = CaracteristicQualitativeValues.getQualitativeValue(caracteristic, valueId);
125 map.put(this, result);
126 }
127
128 public static Sex getValue(String sign) {
129 Sex result = null;
130 for (Sex s : values()) {
131 if (s.sign.equals(sign)) {
132 result = s;
133 break;
134 }
135 }
136 return result;
137 }
138
139 public static Function<BigfinDataRow, Sign> newExtractValueFunction() {
140 return BigfinDataRow::getSex;
141 }
142
143 }