001/*
002 * #%L
003 * SIH-Adagio
004 * $Id: javaMergeMappings.xml 12002 2014-03-26 10:17:22Z bl05b3e $
005 * $HeadURL: https://forge.ifremer.fr/svn/sih-adagio/tags/adagio-3.5.6/mda/src/main/config/javaMergeMappings.xml $
006 * %%
007 * Copyright (C) 2012 - 2013 Ifremer
008 * %%
009 * This program is free software: you can redistribute it and/or modify
010 * it under the terms of the GNU Affero General Public License as published by
011 * the Free Software Foundation, either version 3 of the License, or
012 * (at your option) any later version.
013 * 
014 * This program is distributed in the hope that it will be useful,
015 * but WITHOUT ANY WARRANTY; without even the implied warranty of
016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
017 * GNU General Public License for more details.
018 * 
019 * You should have received a copy of the GNU Affero General Public License
020 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
021 * #L%
022 */
023//
024// Attention: Generated code! Do not modify by hand!
025// Generated by: TypeSafeEnumeration.vsl in andromda-java-cartridge.
026// Model Class:  Data::fr.ifremer.adagio.core.dao::referential::pmfm::PmfmId
027// Metafacade:   org.andromda.metafacades.uml.Enumeration
028// Stereotype:  Enumeration
029//
030package fr.ifremer.adagio.core.dao.referential.pmfm;
031
032import fr.ifremer.adagio.core.dao.technical.AdagioEnumerationDef;
033import java.io.Serializable;
034import java.util.ArrayList;
035import java.util.Collections;
036import java.util.LinkedHashMap;
037import java.util.List;
038import java.util.Map;
039import static org.nuiton.i18n.I18n.n;
040
041/**
042 * 
043 */
044public enum PmfmId
045    implements Serializable, AdagioEnumerationDef<Integer>
046{
047    /** TODO: Model Documentation for Enumeration Literal DEAD_OR_ALIVE value 1393 */
048    DEAD_OR_ALIVE (
049            "adagio.enumeration.PmfmId.DEAD_OR_ALIVE", 
050            n("adagio.enumeration.PmfmId.DEAD_OR_ALIVE.description"), 
051            1393),
052    /** TODO: Model Documentation for Enumeration Literal SORTED_UNSORTED value 1428 */
053    SORTED_UNSORTED (
054            "adagio.enumeration.PmfmId.SORTED_UNSORTED", 
055            n("adagio.enumeration.PmfmId.SORTED_UNSORTED.description"), 
056            1428),
057    /** TODO: Model Documentation for Enumeration Literal WEIGHT_MEASURED value 220 */
058    WEIGHT_MEASURED (
059            "adagio.enumeration.PmfmId.WEIGHT_MEASURED", 
060            n("adagio.enumeration.PmfmId.WEIGHT_MEASURED.description"), 
061            220),
062    /** TODO: Model Documentation for Enumeration Literal MATURITY value 174 */
063    MATURITY (
064            "adagio.enumeration.PmfmId.MATURITY", 
065            n("adagio.enumeration.PmfmId.MATURITY.description"), 
066            174),
067    /** TODO: Model Documentation for Enumeration Literal HORIZONTAL_OPENING_WINGS value 827 */
068    HORIZONTAL_OPENING_WINGS (
069            "adagio.enumeration.PmfmId.HORIZONTAL_OPENING_WINGS", 
070            n("adagio.enumeration.PmfmId.HORIZONTAL_OPENING_WINGS.description"), 
071            827),
072    /** TODO: Model Documentation for Enumeration Literal SIZE_CATEGORY value 198 */
073    SIZE_CATEGORY (
074            "adagio.enumeration.PmfmId.SIZE_CATEGORY", 
075            n("adagio.enumeration.PmfmId.SIZE_CATEGORY.description"), 
076            198),
077    /** TODO: Model Documentation for Enumeration Literal SCIENTIFIC_CRUISE_SORTING_TYPE2 value 1431 */
078    SCIENTIFIC_CRUISE_SORTING_TYPE2 (
079            "adagio.enumeration.PmfmId.SCIENTIFIC_CRUISE_SORTING_TYPE2", 
080            n("adagio.enumeration.PmfmId.SCIENTIFIC_CRUISE_SORTING_TYPE2.description"), 
081            1431),
082    /** TODO: Model Documentation for Enumeration Literal SURVEY_PART value 1432 */
083    SURVEY_PART (
084            "adagio.enumeration.PmfmId.SURVEY_PART", 
085            n("adagio.enumeration.PmfmId.SURVEY_PART.description"), 
086            1432),
087    /** TODO: Model Documentation for Enumeration Literal AGE value 1430 */
088    AGE (
089            "adagio.enumeration.PmfmId.AGE", 
090            n("adagio.enumeration.PmfmId.AGE.description"), 
091            1430),
092    /** TODO: Model Documentation for Enumeration Literal HAUL_VALID value 1163 */
093    HAUL_VALID (
094            "adagio.enumeration.PmfmId.HAUL_VALID", 
095            n("adagio.enumeration.PmfmId.HAUL_VALID.description"), 
096            1163),
097    /** TODO: Model Documentation for Enumeration Literal HORIZONTAL_OPENING_DOOR value 830 */
098    HORIZONTAL_OPENING_DOOR (
099            "adagio.enumeration.PmfmId.HORIZONTAL_OPENING_DOOR", 
100            n("adagio.enumeration.PmfmId.HORIZONTAL_OPENING_DOOR.description"), 
101            830),
102    /** TODO: Model Documentation for Enumeration Literal STATION_NUMBER value 1243 */
103    STATION_NUMBER (
104            "adagio.enumeration.PmfmId.STATION_NUMBER", 
105            n("adagio.enumeration.PmfmId.STATION_NUMBER.description"), 
106            1243),
107    /** TODO: Model Documentation for Enumeration Literal MULTIRIG_AGGREGATION value 1424 */
108    MULTIRIG_AGGREGATION (
109            "adagio.enumeration.PmfmId.MULTIRIG_AGGREGATION", 
110            n("adagio.enumeration.PmfmId.MULTIRIG_AGGREGATION.description"), 
111            1424),
112    /** TODO: Model Documentation for Enumeration Literal SEX value 196 */
113    SEX (
114            "adagio.enumeration.PmfmId.SEX", 
115            n("adagio.enumeration.PmfmId.SEX.description"), 
116            196),
117    /** TODO: Model Documentation for Enumeration Literal MARINE_LITTER_TYPE value 1421 */
118    MARINE_LITTER_TYPE (
119            "adagio.enumeration.PmfmId.MARINE_LITTER_TYPE", 
120            n("adagio.enumeration.PmfmId.MARINE_LITTER_TYPE.description"), 
121            1421),
122    /** TODO: Model Documentation for Enumeration Literal MULTIRIG_NUMBER value 1420 */
123    MULTIRIG_NUMBER (
124            "adagio.enumeration.PmfmId.MULTIRIG_NUMBER", 
125            n("adagio.enumeration.PmfmId.MULTIRIG_NUMBER.description"), 
126            1420),
127    /** TODO: Model Documentation for Enumeration Literal VERTICAL_OPENING value 832 */
128    VERTICAL_OPENING (
129            "adagio.enumeration.PmfmId.VERTICAL_OPENING", 
130            n("adagio.enumeration.PmfmId.VERTICAL_OPENING.description"), 
131            832),
132    /** TODO: Model Documentation for Enumeration Literal TRAWL_DISTANCE value 113 */
133    TRAWL_DISTANCE (
134            "adagio.enumeration.PmfmId.TRAWL_DISTANCE", 
135            n("adagio.enumeration.PmfmId.TRAWL_DISTANCE.description"), 
136            113),
137    /** TODO: Model Documentation for Enumeration Literal RECTILINEAR_OPERATION value 192 */
138    RECTILINEAR_OPERATION (
139            "adagio.enumeration.PmfmId.RECTILINEAR_OPERATION", 
140            n("adagio.enumeration.PmfmId.RECTILINEAR_OPERATION.description"), 
141            192),
142    /** TODO: Model Documentation for Enumeration Literal MARINE_LITTER_SIZE_CATEGORY value 1422 */
143    MARINE_LITTER_SIZE_CATEGORY (
144            "adagio.enumeration.PmfmId.MARINE_LITTER_SIZE_CATEGORY", 
145            n("adagio.enumeration.PmfmId.MARINE_LITTER_SIZE_CATEGORY.description"), 
146            1422),
147    /** TODO: Model Documentation for Enumeration Literal SORTING_TYPE_TCC value 1747 */
148    SORTING_TYPE_TCC (
149            "adagio.enumeration.PmfmId.SORTING_TYPE_TCC", 
150            n("adagio.enumeration.PmfmId.SORTING_TYPE_TCC.description"), 
151            1747),
152    /** TODO: Model Documentation for Enumeration Literal SCIENTIFIC_CRUISE_SORTING_TYPE value 1429 */
153    SCIENTIFIC_CRUISE_SORTING_TYPE (
154            "adagio.enumeration.PmfmId.SCIENTIFIC_CRUISE_SORTING_TYPE", 
155            n("adagio.enumeration.PmfmId.SCIENTIFIC_CRUISE_SORTING_TYPE.description"), 
156            1429),
157    /** TODO: Model Documentation for Enumeration Literal ID_PMFM value 1433 */
158    ID_PMFM (
159            "adagio.enumeration.PmfmId.ID_PMFM", 
160            n("adagio.enumeration.PmfmId.ID_PMFM.description"), 
161            1433);
162
163    /**
164     * The serial version UID of this class. Needed for serialization.
165     */
166    private static final long serialVersionUID = -9215329219763065861L;
167
168    private String key;
169    private String description;
170    private Integer enumValue;
171
172    private PmfmId(String key, String description, Integer value)
173    {
174        this.key = key;
175        this.description = description;
176        this.enumValue = value;
177    }
178    
179    @Override
180    public void setValue(Integer newValue) {
181        if (newValue != null && !this.enumValue.equals(newValue)) {
182            // Update static lists
183            values.remove(this.enumValue);
184            literals.remove(this.enumValue);
185            this.enumValue = newValue;
186            values.put(this.enumValue, this);
187            literals.add(this.enumValue);
188        }
189    }
190    
191
192    @Override
193    public String getValueAsString()
194    {
195        return String.valueOf(this.enumValue);
196    }
197
198    /**
199     * Retrieves an instance of PmfmId from <code>its name</code>.
200     *
201     * @param name the name to create the PmfmId from.
202     * @return The enumeration literal named after the 'name' argument
203     */
204    public static PmfmId fromString(String name)
205    {
206        return PmfmId.valueOf(name);
207    }
208
209    /**
210     * Returns an enumeration literal Integer <code>value</code>.
211     * Required by JAXB2 enumeration implementation
212     *
213     * @return Integer with corresponding value
214     */
215    public Integer value()
216    {
217        return this.enumValue;
218    }
219
220    /**
221     * Returns an instance of PmfmId from Integer <code>value</code>.
222     * Required by JAXB2 enumeration implementation
223     *
224     * @param value the value to create the PmfmId from.
225     * @return static Enumeration with corresponding value
226     */
227    public static PmfmId fromValue(Integer value)
228    {
229        for (PmfmId enumName: PmfmId.values())
230        {
231            if (enumName.getValue().equals(value))
232            {
233                return enumName;
234            }
235        }
236        throw new IllegalArgumentException("PmfmId.fromValue(" + value.toString() + ')');
237    }
238
239    /**
240     * Gets the underlying value of this type safe enumeration.
241     * This method is necessary to comply with DaoBase implementation.
242     * @return The name of this literal.
243     */
244    public Integer getValue()
245    {
246        return this.enumValue;
247    }
248    
249    @Override
250    public String getDescription() {
251        return description;
252    }
253    
254    @Override
255    public String getKey() {
256        return key;
257    }
258    
259    @Override
260    public Class<?> getType() {
261        return Integer.class;
262    }
263    
264    /**
265     * Returns an unmodifiable list containing the literals that are known by this enumeration.
266     *
267     * @return A List containing the actual literals defined by this enumeration, this list
268     *         can not be modified.
269     */
270    public static List<Integer> literals()
271    {
272        return PmfmId.literals;
273    }
274
275    /**
276     * Returns an unmodifiable list containing the names of the literals that are known
277     * by this enumeration.
278     *
279     * @return A List containing the actual names of the literals defined by this
280     *         enumeration, this list can not be modified.
281     */
282    public static List<String> names()
283    {
284        return PmfmId.names;
285    }
286
287    private static Map<Integer, PmfmId> values = new LinkedHashMap<Integer, PmfmId>(23, 1);
288    private static List<Integer> literals = new ArrayList<Integer>(23);
289    private static List<String> names = new ArrayList<String>(23);
290    private static List<PmfmId> valueList = new ArrayList<PmfmId>(23);
291
292    /**
293     * Initializes the values.
294     */
295    static
296    {
297        synchronized (PmfmId.values)
298        {
299            PmfmId.values.put(DEAD_OR_ALIVE.enumValue, DEAD_OR_ALIVE);
300            PmfmId.values.put(SORTED_UNSORTED.enumValue, SORTED_UNSORTED);
301            PmfmId.values.put(WEIGHT_MEASURED.enumValue, WEIGHT_MEASURED);
302            PmfmId.values.put(MATURITY.enumValue, MATURITY);
303            PmfmId.values.put(HORIZONTAL_OPENING_WINGS.enumValue, HORIZONTAL_OPENING_WINGS);
304            PmfmId.values.put(SIZE_CATEGORY.enumValue, SIZE_CATEGORY);
305            PmfmId.values.put(SCIENTIFIC_CRUISE_SORTING_TYPE2.enumValue, SCIENTIFIC_CRUISE_SORTING_TYPE2);
306            PmfmId.values.put(SURVEY_PART.enumValue, SURVEY_PART);
307            PmfmId.values.put(AGE.enumValue, AGE);
308            PmfmId.values.put(HAUL_VALID.enumValue, HAUL_VALID);
309            PmfmId.values.put(HORIZONTAL_OPENING_DOOR.enumValue, HORIZONTAL_OPENING_DOOR);
310            PmfmId.values.put(STATION_NUMBER.enumValue, STATION_NUMBER);
311            PmfmId.values.put(MULTIRIG_AGGREGATION.enumValue, MULTIRIG_AGGREGATION);
312            PmfmId.values.put(SEX.enumValue, SEX);
313            PmfmId.values.put(MARINE_LITTER_TYPE.enumValue, MARINE_LITTER_TYPE);
314            PmfmId.values.put(MULTIRIG_NUMBER.enumValue, MULTIRIG_NUMBER);
315            PmfmId.values.put(VERTICAL_OPENING.enumValue, VERTICAL_OPENING);
316            PmfmId.values.put(TRAWL_DISTANCE.enumValue, TRAWL_DISTANCE);
317            PmfmId.values.put(RECTILINEAR_OPERATION.enumValue, RECTILINEAR_OPERATION);
318            PmfmId.values.put(MARINE_LITTER_SIZE_CATEGORY.enumValue, MARINE_LITTER_SIZE_CATEGORY);
319            PmfmId.values.put(SORTING_TYPE_TCC.enumValue, SORTING_TYPE_TCC);
320            PmfmId.values.put(SCIENTIFIC_CRUISE_SORTING_TYPE.enumValue, SCIENTIFIC_CRUISE_SORTING_TYPE);
321            PmfmId.values.put(ID_PMFM.enumValue, ID_PMFM);
322        }
323        synchronized (PmfmId.valueList)
324        {
325            PmfmId.valueList.add(DEAD_OR_ALIVE);
326            PmfmId.valueList.add(SORTED_UNSORTED);
327            PmfmId.valueList.add(WEIGHT_MEASURED);
328            PmfmId.valueList.add(MATURITY);
329            PmfmId.valueList.add(HORIZONTAL_OPENING_WINGS);
330            PmfmId.valueList.add(SIZE_CATEGORY);
331            PmfmId.valueList.add(SCIENTIFIC_CRUISE_SORTING_TYPE2);
332            PmfmId.valueList.add(SURVEY_PART);
333            PmfmId.valueList.add(AGE);
334            PmfmId.valueList.add(HAUL_VALID);
335            PmfmId.valueList.add(HORIZONTAL_OPENING_DOOR);
336            PmfmId.valueList.add(STATION_NUMBER);
337            PmfmId.valueList.add(MULTIRIG_AGGREGATION);
338            PmfmId.valueList.add(SEX);
339            PmfmId.valueList.add(MARINE_LITTER_TYPE);
340            PmfmId.valueList.add(MULTIRIG_NUMBER);
341            PmfmId.valueList.add(VERTICAL_OPENING);
342            PmfmId.valueList.add(TRAWL_DISTANCE);
343            PmfmId.valueList.add(RECTILINEAR_OPERATION);
344            PmfmId.valueList.add(MARINE_LITTER_SIZE_CATEGORY);
345            PmfmId.valueList.add(SORTING_TYPE_TCC);
346            PmfmId.valueList.add(SCIENTIFIC_CRUISE_SORTING_TYPE);
347            PmfmId.valueList.add(ID_PMFM);
348            // For Adagio, lists could be reload from configuration
349            //PmfmId.valueList = Collections.unmodifiableList(valueList);
350        }
351        synchronized (PmfmId.literals)
352        {
353            PmfmId.literals.add(DEAD_OR_ALIVE.enumValue);
354            PmfmId.literals.add(SORTED_UNSORTED.enumValue);
355            PmfmId.literals.add(WEIGHT_MEASURED.enumValue);
356            PmfmId.literals.add(MATURITY.enumValue);
357            PmfmId.literals.add(HORIZONTAL_OPENING_WINGS.enumValue);
358            PmfmId.literals.add(SIZE_CATEGORY.enumValue);
359            PmfmId.literals.add(SCIENTIFIC_CRUISE_SORTING_TYPE2.enumValue);
360            PmfmId.literals.add(SURVEY_PART.enumValue);
361            PmfmId.literals.add(AGE.enumValue);
362            PmfmId.literals.add(HAUL_VALID.enumValue);
363            PmfmId.literals.add(HORIZONTAL_OPENING_DOOR.enumValue);
364            PmfmId.literals.add(STATION_NUMBER.enumValue);
365            PmfmId.literals.add(MULTIRIG_AGGREGATION.enumValue);
366            PmfmId.literals.add(SEX.enumValue);
367            PmfmId.literals.add(MARINE_LITTER_TYPE.enumValue);
368            PmfmId.literals.add(MULTIRIG_NUMBER.enumValue);
369            PmfmId.literals.add(VERTICAL_OPENING.enumValue);
370            PmfmId.literals.add(TRAWL_DISTANCE.enumValue);
371            PmfmId.literals.add(RECTILINEAR_OPERATION.enumValue);
372            PmfmId.literals.add(MARINE_LITTER_SIZE_CATEGORY.enumValue);
373            PmfmId.literals.add(SORTING_TYPE_TCC.enumValue);
374            PmfmId.literals.add(SCIENTIFIC_CRUISE_SORTING_TYPE.enumValue);
375            PmfmId.literals.add(ID_PMFM.enumValue);
376            // For Adagio, lists could be reload from configuration
377            //PmfmId.literals = Collections.unmodifiableList(literals);
378        }
379        synchronized (PmfmId.names)
380        {
381            PmfmId.names.add("DEAD_OR_ALIVE");
382            PmfmId.names.add("SORTED_UNSORTED");
383            PmfmId.names.add("WEIGHT_MEASURED");
384            PmfmId.names.add("MATURITY");
385            PmfmId.names.add("HORIZONTAL_OPENING_WINGS");
386            PmfmId.names.add("SIZE_CATEGORY");
387            PmfmId.names.add("SCIENTIFIC_CRUISE_SORTING_TYPE2");
388            PmfmId.names.add("SURVEY_PART");
389            PmfmId.names.add("AGE");
390            PmfmId.names.add("HAUL_VALID");
391            PmfmId.names.add("HORIZONTAL_OPENING_DOOR");
392            PmfmId.names.add("STATION_NUMBER");
393            PmfmId.names.add("MULTIRIG_AGGREGATION");
394            PmfmId.names.add("SEX");
395            PmfmId.names.add("MARINE_LITTER_TYPE");
396            PmfmId.names.add("MULTIRIG_NUMBER");
397            PmfmId.names.add("VERTICAL_OPENING");
398            PmfmId.names.add("TRAWL_DISTANCE");
399            PmfmId.names.add("RECTILINEAR_OPERATION");
400            PmfmId.names.add("MARINE_LITTER_SIZE_CATEGORY");
401            PmfmId.names.add("SORTING_TYPE_TCC");
402            PmfmId.names.add("SCIENTIFIC_CRUISE_SORTING_TYPE");
403            PmfmId.names.add("ID_PMFM");
404            PmfmId.names = Collections.unmodifiableList(names);
405        }
406    }
407    // type-safe-enumeration-object java merge-point
408}