View Javadoc
1   package net.sumaris.core.model.referential.pmfm;
2   
3   /*-
4    * #%L
5    * SUMARiS:: Core
6    * %%
7    * Copyright (C) 2018 SUMARiS Consortium
8    * %%
9    * This program is free software: you can redistribute it and/or modify
10   * it under the terms of the GNU General Public License as
11   * published by the Free Software Foundation, either version 3 of the
12   * License, or (at your option) any later version.
13   * 
14   * This program is distributed in the hope that it will be useful,
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17   * GNU General Public License for more details.
18   * 
19   * You should have received a copy of the GNU General Public
20   * License along with this program.  If not, see
21   * <http://www.gnu.org/licenses/gpl-3.0.html>.
22   * #L%
23   */
24  
25  import java.io.Serializable;
26  import java.util.Arrays;
27  
28  public enum PmfmEnum implements Serializable  {
29  
30      SMALLER_MESH_GAUGE_MM(3, "SMALLER_MESH_GAUGE_MM"),
31      HEADLINE_CUMULATIVE_LENGTH(12, "HEADLINE_CUMULATIVE_LENGTH"),
32      BEAM_CUMULATIVE_LENGTH(13, "BEAM_CUMULATIVE_LENGTH"),
33      BOTTOM_DEPTH_M(30, "BOTTOM_DEPTH_M"),
34      BOTTOM_TEMP_C(32, "BOTTOM_TEMP_C"),
35      GEAR_DEPTH_M(36, "GEAR_DEPTH_M"),
36      NET_LENGTH(41, "NET_LENGTH"),
37      DISCARD_OR_LANDING(90, "DISCARD_OR_LANDING"),
38  
39      CONVEYOR_BELT(20, "CONVEYOR_BELT"),
40      NB_FISHERMEN(21, "NB_FISHERMEN"),
41      NB_OPERATION(23, "NB_OPERATION"),
42      NB_SAMPLING_OPERATION(24, "NB_SAMPLING_OPERATION"),
43      MAIN_METIER(25, "MAIN_METIER"),
44      RANDOM_SAMPLING_OPERATION(26, "RANDOM_SAMPLING_OPERATION"),
45  
46      SELECTIVITY_DEVICE(4, "SELECTIVITY_DEVICE"),
47      SUBSTRATE_TYPE(31, "SUBSTRATE_TYPE"),
48      SEA_STATE(33, "SEA_STATE"),
49      TRIP_PROGRESS(34,"TRIP_PROGRESS"),
50      SURVIVAL_SAMPLING_TYPE(35, "SURVIVAL_SAMPLING_TYPE"),
51  
52      LANDING_WEIGHT(50, "LANDING_WEIGHT"),
53      SAND_STONES_WEIGHT_RANGE(51, "SAND_STONES_WEIGHT_RANGE"),
54      BENTHOS_WEIGHT_RANGE(52, "BENTHOS_WEIGHT_RANGE"),
55      ON_DECK_DATE_TIME(53, "ON_DECK_DATE_TIME"),
56      SORTING_START_DATE_TIME(54, "SORTING_START_DATE_TIME"),
57      SORTING_END_DATE_TIME(55, "SORTING_END_DATE_TIME"),
58  
59      SEX(80, "SEX"),
60      TAG_ID(82, "TAG_ID"),
61      LENGTH_TOTAL_CM(81, "LENGTH_TOTAL_CM"),
62      LENGTH_CARAPACE_CM(84, "LENGTH_CARAPACE_CM"),
63      IS_DEAD(94, "IS_DEAD"),
64      DISCARD_REASON(95, "DISCARD_REASON"),
65  
66      CONTROL_TYPE(130, "CONTROL_TYPE"),
67  
68      PRESERVATION(150, "PRESERVATION"),
69      DRESSING(151, "DRESSING")
70      ;
71  
72      public static PmfmEnum valueOf(final int id) {
73          return Arrays.stream(values())
74                  .filter(level -> level.id == id)
75                  .findFirst()
76                  .orElseThrow(() -> new IllegalArgumentException("Unknown PmfmEnum: " + id));
77      }
78  
79      private int id;
80      private String label;
81  
82      PmfmEnum(int id, String label) {
83          this.id = id;
84          this.label = label;
85      }
86  
87      /**
88       * Returns the database row id
89       *
90       * @return int the id
91       */
92      public int getId()
93      {
94          return this.id;
95      }
96  
97      public String getLabel()
98      {
99          return this.label;
100     }
101 }