CarType.java

// license-header java merge-point
//
// Attention: Generated code! Do not modify by hand!
// Generated by: TypeSafeEnumeration.vsl in andromda-java-cartridge.
// Model Class:  SpringCartridge How to Model::Spring Example::org.andromda.test::CarType
// Metafacade:   org.andromda.metafacades.uml.Enumeration
//
package org.andromda.test;

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

/**
 * TODO: Model Documentation for org.andromda.test.CarType
 */
public enum CarType
{
    /** TODO: Model Documentation for Enumeration Literal SEDAN value "SEDAN" */
    SEDAN("SEDAN"),
    /** TODO: Model Documentation for Enumeration Literal LIFTBACK value "LIFTBACK" */
    LIFTBACK("LIFTBACK"),
    /** TODO: Model Documentation for Enumeration Literal STATION_WAGON value "STATION_WAGON" */
    STATION_WAGON("STATION_WAGON");

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

    private final String enumValue;

    /**
     * The constructor with enumeration literal value allowing
     * super classes to access it.
     */
    private CarType(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 CarType from <code>its name</code>.
     *
     * @param name the name to create the CarType from.
     * @return The enumeration literal named after the 'name' argument
     */
    public static CarType fromString(String name)
    {
        return CarType.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 CarType from String <code>value</code>.
     * Required by JAXB2 enumeration implementation
     *
     * @param value the value to create the CarType from.
     * @return static Enumeration with corresponding value
     */
    public static CarType fromValue(String value)
    {
        for (CarType enumName: CarType.values())
        {
            if (enumName.getValue().equals(value))
            {
                return enumName;
            }
        }
        throw new IllegalArgumentException("CarType.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 CarType.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 CarType.names;
    }

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

    /**
     * Initializes the values.
     */
    static
    {
        synchronized (CarType.values)
        {
            CarType.values.put(SEDAN.enumValue, SEDAN);
            CarType.values.put(LIFTBACK.enumValue, LIFTBACK);
            CarType.values.put(STATION_WAGON.enumValue, STATION_WAGON);
        }
        synchronized (CarType.valueList)
        {
            CarType.valueList.add(SEDAN);
            CarType.valueList.add(LIFTBACK);
            CarType.valueList.add(STATION_WAGON);
            CarType.valueList = Collections.unmodifiableList(valueList);
        }
        synchronized (CarType.literals)
        {
            CarType.literals.add(SEDAN.enumValue);
            CarType.literals.add(LIFTBACK.enumValue);
            CarType.literals.add(STATION_WAGON.enumValue);
            CarType.literals = Collections.unmodifiableList(literals);
        }
        synchronized (CarType.names)
        {
            CarType.names.add("SEDAN");
            CarType.names.add("LIFTBACK");
            CarType.names.add("STATION_WAGON");
            CarType.names = Collections.unmodifiableList(names);
        }
    }
    // type-safe-enumeration-object java merge-point
}