TimecardStatus.java

// license-header java merge-point
//
/**
 * @author Generated by TypeSafeEnumeration.vsl in andromda-java-cartridge on 09/15/2014 18:39:44-0400 Do not modify by hand!
 *
 * TEMPLATE:     TypeSafeEnumeration.vsl in andromda-java-cartridge.
 * MODEL CLASS:  Timetracker EJB3 ::TimeTracker::org.andromda.timetracker::domain::TimecardStatus
 * STEREOTYPE:   Enumeration
 */
//
package org.andromda.timetracker.domain;

import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * TODO: Model Documentation for org.andromda.timetracker.domain.TimecardStatus
 * </p>
 */
public enum TimecardStatus
{
    /** TODO: Model Documentation for Enumeration Literal DRAFT value "Draft" */
    DRAFT("Draft"),
    /** TODO: Model Documentation for Enumeration Literal SUBMITTED value "Submitted" */
    SUBMITTED("Submitted"),
    /** TODO: Model Documentation for Enumeration Literal APPROVED value "Approved" */
    APPROVED("Approved"),
    /** TODO: Model Documentation for Enumeration Literal REJECTED value "Rejected" */
    REJECTED("Rejected");

    /**
     * The serial version UID of this class. Needed for serialization.
     */
    private static final long serialVersionUID = 3912146933603416362L;

    private final String enumValue;

    /**
     * The constructor with enumeration literal value allowing
     * super classes to access it.
     */
    private TimecardStatus(String value)
    {
        this.enumValue = value;
    }

    /*
     * Do not override this method directly. Use an alternate name
     * if providing a different toString implementation
     * @see Object#toString()
    @Override
    public String toString()
    {
        return String.valueOf(this.enumValue);
    }
     */

    /**
     * Retrieves an instance of TimecardStatus from <code>its name</code>.
     *
     * @param name the name to create the TimecardStatus from.
     * @return The enumeration literal named after the 'name' argument
     */
    public static TimecardStatus fromString(String name)
    {
        return TimecardStatus.valueOf(name);
    }

    /**
     * Returns an enumeration literal String <code>value</code>.
     * Required by JAXB2 enumeration implementation
     *
     * @return String with corresponding value
     */
    public String value()
    {
        return this.enumValue;
    }

    /**
     * Returns an instance of TimecardStatus from String <code>value</code>.
     * Required by JAXB2 enumeration implementation
     *
     * @param value the value to create the TimecardStatus from.
     * @return static Enumeration with corresponding value
     */
    public static TimecardStatus fromValue(String value)
    {
        // Allow either the Enum name or value string to be used to retrieve the enum
        for (TimecardStatus enumName: TimecardStatus.values())
        {
            if (enumName.getValue().equals(value))
            {
                return enumName;
            }
        }
        for (String enumName: TimecardStatus.names())
        {
            if (enumName.equals(value))
            {
                return TimecardStatus.valueOf(enumName);
            }
        }
        throw new IllegalArgumentException("TimecardStatus.fromValue(" + value + ')');
    }

    /**
     * Gets the underlying value of this type safe enumeration.
     * This method is necessary to comply with DaoBase implementation.
     * @return The name of this literal.
     */
    public String getValue()
    {
        return this.enumValue;
    }

    /**
     * Returns an unmodifiable list containing the literals that are known by this enumeration.
     *
     * @return A List containing the actual literals defined by this enumeration, this list
     *         can not be modified.
     */
    public static List<String> literals()
    {
        return TimecardStatus.literals;
    }

    /**
     * Returns an unmodifiable list containing the names of the literals that are known
     * by this enumeration.
     *
     * @return A List containing the actual names of the literals defined by this
     *         enumeration, this list can not be modified.
     */
    public static List<String> names()
    {
        return TimecardStatus.names;
    }

    private static Map<String, TimecardStatus> values = new LinkedHashMap<String, TimecardStatus>(4, 1);
    private static List<String> literals = new ArrayList<String>(4);
    private static List<String> names = new ArrayList<String>(4);
    private static List<TimecardStatus> valueList = new ArrayList<TimecardStatus>(4);

    /**
     * Initializes the values.
     */
    static
    {
        synchronized (TimecardStatus.values)
        {
            TimecardStatus.values.put(DRAFT.enumValue, DRAFT);
            TimecardStatus.values.put(SUBMITTED.enumValue, SUBMITTED);
            TimecardStatus.values.put(APPROVED.enumValue, APPROVED);
            TimecardStatus.values.put(REJECTED.enumValue, REJECTED);
        }
        synchronized (TimecardStatus.valueList)
        {
            TimecardStatus.valueList.add(DRAFT);
            TimecardStatus.valueList.add(SUBMITTED);
            TimecardStatus.valueList.add(APPROVED);
            TimecardStatus.valueList.add(REJECTED);
            TimecardStatus.valueList = Collections.unmodifiableList(valueList);
        }
        synchronized (TimecardStatus.literals)
        {
            TimecardStatus.literals.add(DRAFT.enumValue);
            TimecardStatus.literals.add(SUBMITTED.enumValue);
            TimecardStatus.literals.add(APPROVED.enumValue);
            TimecardStatus.literals.add(REJECTED.enumValue);
            TimecardStatus.literals = Collections.unmodifiableList(literals);
        }
        synchronized (TimecardStatus.names)
        {
            TimecardStatus.names.add("DRAFT");
            TimecardStatus.names.add("SUBMITTED");
            TimecardStatus.names.add("APPROVED");
            TimecardStatus.names.add("REJECTED");
            TimecardStatus.names = Collections.unmodifiableList(names);
        }
    }
    // type-safe-enumeration-object java merge-point
}