CascadeType.java

// license-header java merge-point
//
// Attention: Generated code! Do not modify by hand!
// Generated by: TypeSafeEnumeration.vsl in andromda-java-cartridge.
// Model Class:  JDBCMetadataModel::org.andromda.jdbcmetadata::CascadeType
// Metafacade:   org.andromda.metafacades.uml.Enumeration
//
package org.andromda.jdbcmetadata;

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

/**
 * <p>Defines the set of cascadable operations that are propagated to the associated entity. The
 * value cascade=ALL is equivalent to cascade={PERSIST, MERGE, REMOVE, REFRESH, DETACH}.</p>
 */
public enum CascadeType
{
    /** TODO: Model Documentation for Enumeration Literal NO_ACTION value "NO_ACTION" */
    NO_ACTION("NO_ACTION"),
    /** TODO: Model Documentation for Enumeration Literal CASCADE value "CASCADE" */
    CASCADE("CASCADE"),
    /** TODO: Model Documentation for Enumeration Literal SET_NULL value "SET_NULL" */
    SET_NULL("SET_NULL"),
    /** TODO: Model Documentation for Enumeration Literal RESTRICT value "RESTRICT" */
    RESTRICT("RESTRICT"),
    /** TODO: Model Documentation for Enumeration Literal SET_DEFAULT value "SET_DEFAULT" */
    SET_DEFAULT("SET_DEFAULT"),
    /** TODO: Model Documentation for Enumeration Literal ALL value "ALL" */
    ALL("ALL"),
    /** TODO: Model Documentation for Enumeration Literal PERSIST value "PERSIST" */
    PERSIST("PERSIST"),
    /** TODO: Model Documentation for Enumeration Literal MERGE value "MERGE" */
    MERGE("MERGE"),
    /** TODO: Model Documentation for Enumeration Literal REMOVE value "REMOVE" */
    REMOVE("REMOVE"),
    /** TODO: Model Documentation for Enumeration Literal REFRESH value "REFRESH" */
    REFRESH("REFRESH"),
    /** TODO: Model Documentation for Enumeration Literal DETACH value "DETACH" */
    DETACH("DETACH");

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

    private final String enumValue;

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

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

    /**
     * Initializes the values.
     */
    static
    {
        synchronized (CascadeType.values)
        {
            CascadeType.values.put(NO_ACTION.enumValue, NO_ACTION);
            CascadeType.values.put(CASCADE.enumValue, CASCADE);
            CascadeType.values.put(SET_NULL.enumValue, SET_NULL);
            CascadeType.values.put(RESTRICT.enumValue, RESTRICT);
            CascadeType.values.put(SET_DEFAULT.enumValue, SET_DEFAULT);
            CascadeType.values.put(ALL.enumValue, ALL);
            CascadeType.values.put(PERSIST.enumValue, PERSIST);
            CascadeType.values.put(MERGE.enumValue, MERGE);
            CascadeType.values.put(REMOVE.enumValue, REMOVE);
            CascadeType.values.put(REFRESH.enumValue, REFRESH);
            CascadeType.values.put(DETACH.enumValue, DETACH);
        }
        synchronized (CascadeType.valueList)
        {
            CascadeType.valueList.add(NO_ACTION);
            CascadeType.valueList.add(CASCADE);
            CascadeType.valueList.add(SET_NULL);
            CascadeType.valueList.add(RESTRICT);
            CascadeType.valueList.add(SET_DEFAULT);
            CascadeType.valueList.add(ALL);
            CascadeType.valueList.add(PERSIST);
            CascadeType.valueList.add(MERGE);
            CascadeType.valueList.add(REMOVE);
            CascadeType.valueList.add(REFRESH);
            CascadeType.valueList.add(DETACH);
            CascadeType.valueList = Collections.unmodifiableList(valueList);
        }
        synchronized (CascadeType.literals)
        {
            CascadeType.literals.add(NO_ACTION.enumValue);
            CascadeType.literals.add(CASCADE.enumValue);
            CascadeType.literals.add(SET_NULL.enumValue);
            CascadeType.literals.add(RESTRICT.enumValue);
            CascadeType.literals.add(SET_DEFAULT.enumValue);
            CascadeType.literals.add(ALL.enumValue);
            CascadeType.literals.add(PERSIST.enumValue);
            CascadeType.literals.add(MERGE.enumValue);
            CascadeType.literals.add(REMOVE.enumValue);
            CascadeType.literals.add(REFRESH.enumValue);
            CascadeType.literals.add(DETACH.enumValue);
            CascadeType.literals = Collections.unmodifiableList(literals);
        }
        synchronized (CascadeType.names)
        {
            CascadeType.names.add("NO_ACTION");
            CascadeType.names.add("CASCADE");
            CascadeType.names.add("SET_NULL");
            CascadeType.names.add("RESTRICT");
            CascadeType.names.add("SET_DEFAULT");
            CascadeType.names.add("ALL");
            CascadeType.names.add("PERSIST");
            CascadeType.names.add("MERGE");
            CascadeType.names.add("REMOVE");
            CascadeType.names.add("REFRESH");
            CascadeType.names.add("DETACH");
            CascadeType.names = Collections.unmodifiableList(names);
        }
    }
    // type-safe-enumeration-object java merge-point
}