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::administration::programStrategy::ProgramCode
027// Metafacade:   org.andromda.metafacades.uml.Enumeration
028// Stereotype:  Enumeration
029//
030package fr.ifremer.adagio.core.dao.administration.programStrategy;
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 ProgramCode
045    implements Serializable, AdagioEnumerationDef<String>
046{
047    /** TODO: Model Documentation for Enumeration Literal PRE_RECOPESCA value "SIH-preRECOPESCA" */
048    PRE_RECOPESCA (
049            "adagio.enumeration.ProgramCode.PRE_RECOPESCA", 
050            n("adagio.enumeration.ProgramCode.PRE_RECOPESCA.description"), 
051            "SIH-preRECOPESCA"),
052    /** TODO: Model Documentation for Enumeration Literal STAT_PECHE value "SIH-ACTIFLOT" */
053    STAT_PECHE (
054            "adagio.enumeration.ProgramCode.STAT_PECHE", 
055            n("adagio.enumeration.ProgramCode.STAT_PECHE.description"), 
056            "SIH-ACTIFLOT"),
057    /** TODO: Model Documentation for Enumeration Literal RECOPESCA value "SIH-RECOPESCA" */
058    RECOPESCA (
059            "adagio.enumeration.ProgramCode.RECOPESCA", 
060            n("adagio.enumeration.ProgramCode.RECOPESCA.description"), 
061            "SIH-RECOPESCA"),
062    /** TODO: Model Documentation for Enumeration Literal DECLARATIVE_FLOW value "SIH-ACTIPRED" */
063    DECLARATIVE_FLOW (
064            "adagio.enumeration.ProgramCode.DECLARATIVE_FLOW", 
065            n("adagio.enumeration.ProgramCode.DECLARATIVE_FLOW.description"), 
066            "SIH-ACTIPRED"),
067    /** TODO: Model Documentation for Enumeration Literal SIH_STATPECHE_CONFLIT value "SIH-ACTIFLOT-CONFLIT" */
068    SIH_STATPECHE_CONFLIT (
069            "adagio.enumeration.ProgramCode.SIH_STATPECHE_CONFLIT", 
070            n("adagio.enumeration.ProgramCode.SIH_STATPECHE_CONFLIT.description"), 
071            "SIH-ACTIFLOT-CONFLIT"),
072    /** TODO: Model Documentation for Enumeration Literal ACTIVITY_MERGE value "SIH-ACTIFLOT-CONFLIT" */
073    ACTIVITY_MERGE (
074            "adagio.enumeration.ProgramCode.ACTIVITY_MERGE", 
075            n("adagio.enumeration.ProgramCode.ACTIVITY_MERGE.description"), 
076            "SIH-ACTIFLOT-CONFLIT"),
077    /** TODO: Model Documentation for Enumeration Literal ACTIVITY value "SIH-ACTIFLOT" */
078    ACTIVITY (
079            "adagio.enumeration.ProgramCode.ACTIVITY", 
080            n("adagio.enumeration.ProgramCode.ACTIVITY.description"), 
081            "SIH-ACTIFLOT"),
082    /** TODO: Model Documentation for Enumeration Literal SIH_OBSERVED_FISHING_TRIP_ON_BOARD value "SIH-OBSMER" */
083    SIH_OBSERVED_FISHING_TRIP_ON_BOARD (
084            "adagio.enumeration.ProgramCode.SIH_OBSERVED_FISHING_TRIP_ON_BOARD", 
085            n("adagio.enumeration.ProgramCode.SIH_OBSERVED_FISHING_TRIP_ON_BOARD.description"), 
086            "SIH-OBSMER"),
087    /** TODO: Model Documentation for Enumeration Literal SIH_OBSMER value "SIH-OBSMER" */
088    SIH_OBSMER (
089            "adagio.enumeration.ProgramCode.SIH_OBSMER", 
090            n("adagio.enumeration.ProgramCode.SIH_OBSMER.description"), 
091            "SIH-OBSMER"),
092    /** TODO: Model Documentation for Enumeration Literal SIH_OBSVENTE value "SIH-OBSVENTE" */
093    SIH_OBSVENTE (
094            "adagio.enumeration.ProgramCode.SIH_OBSVENTE", 
095            n("adagio.enumeration.ProgramCode.SIH_OBSVENTE.description"), 
096            "SIH-OBSVENTE"),
097    /** TODO: Model Documentation for Enumeration Literal SIH_OBSERVED_SALE value "SIH-OBSVENTE" */
098    SIH_OBSERVED_SALE (
099            "adagio.enumeration.ProgramCode.SIH_OBSERVED_SALE", 
100            n("adagio.enumeration.ProgramCode.SIH_OBSERVED_SALE.description"), 
101            "SIH-OBSVENTE"),
102    /** TODO: Model Documentation for Enumeration Literal SIH value "SIH" */
103    SIH (
104            "adagio.enumeration.ProgramCode.SIH", 
105            n("adagio.enumeration.ProgramCode.SIH.description"), 
106            "SIH"),
107    /** TODO: Model Documentation for Enumeration Literal SCIENTIFIC_CRUISE_PREFIX value "CAM-" */
108    SCIENTIFIC_CRUISE_PREFIX (
109            "adagio.enumeration.ProgramCode.SCIENTIFIC_CRUISE_PREFIX", 
110            n("adagio.enumeration.ProgramCode.SCIENTIFIC_CRUISE_PREFIX.description"), 
111            "CAM-");
112
113    /**
114     * The serial version UID of this class. Needed for serialization.
115     */
116    private static final long serialVersionUID = -3264543624519728016L;
117
118    private String key;
119    private String description;
120    private String enumValue;
121
122    private ProgramCode(String key, String description, String value)
123    {
124        this.key = key;
125        this.description = description;
126        this.enumValue = value;
127    }
128    
129    @Override
130    public void setValue(String newValue) {
131        if (newValue != null && !this.enumValue.equals(newValue)) {
132            // Update static lists
133            values.remove(this.enumValue);
134            literals.remove(this.enumValue);
135            this.enumValue = newValue;
136            values.put(this.enumValue, this);
137            literals.add(this.enumValue);
138        }
139    }
140    
141
142    @Override
143    public String getValueAsString()
144    {
145        return String.valueOf(this.enumValue);
146    }
147
148    /**
149     * Retrieves an instance of ProgramCode from <code>its name</code>.
150     *
151     * @param name the name to create the ProgramCode from.
152     * @return The enumeration literal named after the 'name' argument
153     */
154    public static ProgramCode fromString(String name)
155    {
156        return ProgramCode.valueOf(name);
157    }
158
159    /**
160     * Returns an enumeration literal String <code>value</code>.
161     * Required by JAXB2 enumeration implementation
162     *
163     * @return String with corresponding value
164     */
165    public String value()
166    {
167        return this.enumValue;
168    }
169
170    /**
171     * Returns an instance of ProgramCode from String <code>value</code>.
172     * Required by JAXB2 enumeration implementation
173     *
174     * @param value the value to create the ProgramCode from.
175     * @return static Enumeration with corresponding value
176     */
177    public static ProgramCode fromValue(String value)
178    {
179        for (ProgramCode enumName: ProgramCode.values())
180        {
181            if (enumName.getValue().equals(value))
182            {
183                return enumName;
184            }
185        }
186        throw new IllegalArgumentException("ProgramCode.fromValue(" + value + ')');
187    }
188
189    /**
190     * Gets the underlying value of this type safe enumeration.
191     * This method is necessary to comply with DaoBase implementation.
192     * @return The name of this literal.
193     */
194    public String getValue()
195    {
196        return this.enumValue;
197    }
198    
199    @Override
200    public String getDescription() {
201        return description;
202    }
203    
204    @Override
205    public String getKey() {
206        return key;
207    }
208    
209    @Override
210    public Class<?> getType() {
211        return String.class;
212    }
213    
214    /**
215     * Returns an unmodifiable list containing the literals that are known by this enumeration.
216     *
217     * @return A List containing the actual literals defined by this enumeration, this list
218     *         can not be modified.
219     */
220    public static List<String> literals()
221    {
222        return ProgramCode.literals;
223    }
224
225    /**
226     * Returns an unmodifiable list containing the names of the literals that are known
227     * by this enumeration.
228     *
229     * @return A List containing the actual names of the literals defined by this
230     *         enumeration, this list can not be modified.
231     */
232    public static List<String> names()
233    {
234        return ProgramCode.names;
235    }
236
237    private static Map<String, ProgramCode> values = new LinkedHashMap<String, ProgramCode>(13, 1);
238    private static List<String> literals = new ArrayList<String>(13);
239    private static List<String> names = new ArrayList<String>(13);
240    private static List<ProgramCode> valueList = new ArrayList<ProgramCode>(13);
241
242    /**
243     * Initializes the values.
244     */
245    static
246    {
247        synchronized (ProgramCode.values)
248        {
249            ProgramCode.values.put(PRE_RECOPESCA.enumValue, PRE_RECOPESCA);
250            ProgramCode.values.put(STAT_PECHE.enumValue, STAT_PECHE);
251            ProgramCode.values.put(RECOPESCA.enumValue, RECOPESCA);
252            ProgramCode.values.put(DECLARATIVE_FLOW.enumValue, DECLARATIVE_FLOW);
253            ProgramCode.values.put(SIH_STATPECHE_CONFLIT.enumValue, SIH_STATPECHE_CONFLIT);
254            ProgramCode.values.put(ACTIVITY_MERGE.enumValue, ACTIVITY_MERGE);
255            ProgramCode.values.put(ACTIVITY.enumValue, ACTIVITY);
256            ProgramCode.values.put(SIH_OBSERVED_FISHING_TRIP_ON_BOARD.enumValue, SIH_OBSERVED_FISHING_TRIP_ON_BOARD);
257            ProgramCode.values.put(SIH_OBSMER.enumValue, SIH_OBSMER);
258            ProgramCode.values.put(SIH_OBSVENTE.enumValue, SIH_OBSVENTE);
259            ProgramCode.values.put(SIH_OBSERVED_SALE.enumValue, SIH_OBSERVED_SALE);
260            ProgramCode.values.put(SIH.enumValue, SIH);
261            ProgramCode.values.put(SCIENTIFIC_CRUISE_PREFIX.enumValue, SCIENTIFIC_CRUISE_PREFIX);
262        }
263        synchronized (ProgramCode.valueList)
264        {
265            ProgramCode.valueList.add(PRE_RECOPESCA);
266            ProgramCode.valueList.add(STAT_PECHE);
267            ProgramCode.valueList.add(RECOPESCA);
268            ProgramCode.valueList.add(DECLARATIVE_FLOW);
269            ProgramCode.valueList.add(SIH_STATPECHE_CONFLIT);
270            ProgramCode.valueList.add(ACTIVITY_MERGE);
271            ProgramCode.valueList.add(ACTIVITY);
272            ProgramCode.valueList.add(SIH_OBSERVED_FISHING_TRIP_ON_BOARD);
273            ProgramCode.valueList.add(SIH_OBSMER);
274            ProgramCode.valueList.add(SIH_OBSVENTE);
275            ProgramCode.valueList.add(SIH_OBSERVED_SALE);
276            ProgramCode.valueList.add(SIH);
277            ProgramCode.valueList.add(SCIENTIFIC_CRUISE_PREFIX);
278            // For Adagio, lists could be reload from configuration
279            //ProgramCode.valueList = Collections.unmodifiableList(valueList);
280        }
281        synchronized (ProgramCode.literals)
282        {
283            ProgramCode.literals.add(PRE_RECOPESCA.enumValue);
284            ProgramCode.literals.add(STAT_PECHE.enumValue);
285            ProgramCode.literals.add(RECOPESCA.enumValue);
286            ProgramCode.literals.add(DECLARATIVE_FLOW.enumValue);
287            ProgramCode.literals.add(SIH_STATPECHE_CONFLIT.enumValue);
288            ProgramCode.literals.add(ACTIVITY_MERGE.enumValue);
289            ProgramCode.literals.add(ACTIVITY.enumValue);
290            ProgramCode.literals.add(SIH_OBSERVED_FISHING_TRIP_ON_BOARD.enumValue);
291            ProgramCode.literals.add(SIH_OBSMER.enumValue);
292            ProgramCode.literals.add(SIH_OBSVENTE.enumValue);
293            ProgramCode.literals.add(SIH_OBSERVED_SALE.enumValue);
294            ProgramCode.literals.add(SIH.enumValue);
295            ProgramCode.literals.add(SCIENTIFIC_CRUISE_PREFIX.enumValue);
296            // For Adagio, lists could be reload from configuration
297            //ProgramCode.literals = Collections.unmodifiableList(literals);
298        }
299        synchronized (ProgramCode.names)
300        {
301            ProgramCode.names.add("PRE_RECOPESCA");
302            ProgramCode.names.add("STAT_PECHE");
303            ProgramCode.names.add("RECOPESCA");
304            ProgramCode.names.add("DECLARATIVE_FLOW");
305            ProgramCode.names.add("SIH_STATPECHE_CONFLIT");
306            ProgramCode.names.add("ACTIVITY_MERGE");
307            ProgramCode.names.add("ACTIVITY");
308            ProgramCode.names.add("SIH_OBSERVED_FISHING_TRIP_ON_BOARD");
309            ProgramCode.names.add("SIH_OBSMER");
310            ProgramCode.names.add("SIH_OBSVENTE");
311            ProgramCode.names.add("SIH_OBSERVED_SALE");
312            ProgramCode.names.add("SIH");
313            ProgramCode.names.add("SCIENTIFIC_CRUISE_PREFIX");
314            ProgramCode.names = Collections.unmodifiableList(names);
315        }
316    }
317    // type-safe-enumeration-object java merge-point
318}