/**
 */
package org.eclipse.emf.codegen.ecore.genmodel;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import org.eclipse.emf.common.util.Enumerator;

/**
 * <!-- begin-user-doc -->
 * A representation of the literals of the enumeration '<em><b>Gen Eclipse Platform Version</b></em>',
 * and utility methods for working with them.
 * <!-- end-user-doc -->
 * <!-- begin-model-doc -->
 * @since 2.14
 * <!-- end-model-doc -->
 * @see org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage#getGenEclipsePlatformVersion()
 * @model
 * @generated
 */
public enum GenEclipsePlatformVersion implements Enumerator
{
  /**
   * The '<em><b>Juno</b></em>' literal object.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #JUNO_VALUE
   * @generated
   * @ordered
   */
  JUNO(0, "Juno", "Juno"),

  /**
   * The '<em><b>Kepler</b></em>' literal object.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #KEPLER_VALUE
   * @generated
   * @ordered
   */
  KEPLER(1, "Kepler", "Kepler"),

  /**
   * The '<em><b>Luna</b></em>' literal object.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #LUNA_VALUE
   * @generated
   * @ordered
   */
  LUNA(2, "Luna", "Luna"),

  /**
   * The '<em><b>Mars</b></em>' literal object.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #MARS_VALUE
   * @generated
   * @ordered
   */
  MARS(3, "Mars", "Mars"),

  /**
   * The '<em><b>Neon</b></em>' literal object.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #NEON_VALUE
   * @generated
   * @ordered
   */
  NEON(4, "Neon", "Neon"),

  /**
   * The '<em><b>Oxygen</b></em>' literal object.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #OXYGEN_VALUE
   * @generated
   * @ordered
   */
  OXYGEN(5, "Oxygen", "Oxygen"),

  /**
   * The '<em><b>Photon</b></em>' literal object.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #PHOTON_VALUE
   * @generated
   * @ordered
   */
  PHOTON(6, "Photon", "Photon"),

  /**
   * The '<em><b>Eclipse 2018 09</b></em>' literal object.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * @since 2.16
   * <!-- end-model-doc -->
   * @see #ECLIPSE_2018_09_VALUE
   * @generated
   * @ordered
   */
  ECLIPSE_2018_09(7, "Eclipse_2018_09", "2018-09"),

  /**
   * The '<em><b>Eclipse 2018 12</b></em>' literal object.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * @since 2.16
   * <!-- end-model-doc -->
   * @see #ECLIPSE_2018_12_VALUE
   * @generated
   * @ordered
   */
  ECLIPSE_2018_12(8, "Eclipse_2018_12", "2018-12"),

  /**
   * The '<em><b>Eclipse 2019 03</b></em>' literal object.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * @since 2.17
   * <!-- end-model-doc -->
   * @see #ECLIPSE_2019_03_VALUE
   * @generated
   * @ordered
   */
  ECLIPSE_2019_03(9, "Eclipse_2019_03", "2019-03"),

  /**
   * The '<em><b>Eclipse 2019 06</b></em>' literal object.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * @since 2.18
   * <!-- end-model-doc -->
   * @see #ECLIPSE_2019_06_VALUE
   * @generated
   * @ordered
   */
  ECLIPSE_2019_06(10, "Eclipse_2019_06", "2019-06"),

  /**
   * The '<em><b>Eclipse 2019 09</b></em>' literal object.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * @since 2.19
   * <!-- end-model-doc -->
   * @see #ECLIPSE_2019_09_VALUE
   * @generated
   * @ordered
   */
  ECLIPSE_2019_09(11, "Eclipse_2019_09", "2019-09"),

  /**
   * The '<em><b>Eclipse 2019 12</b></em>' literal object.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * @since 2.20
   * <!-- end-model-doc -->
   * @see #ECLIPSE_2019_12_VALUE
   * @generated
   * @ordered
   */
  ECLIPSE_2019_12(12, "Eclipse_2019_12", "2019-12"),

  /**
   * The '<em><b>Eclipse 2020 03</b></em>' literal object.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * @since 2.21
   * <!-- end-model-doc -->
   * @see #ECLIPSE_2020_03_VALUE
   * @generated
   * @ordered
   */
  ECLIPSE_2020_03(13, "Eclipse_2020_03", "2020-03"), /**
   * The '<em><b>Eclipse 2020 06</b></em>' literal object.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * @since 2.22
   * <!-- end-model-doc -->
   * @see #ECLIPSE_2020_06_VALUE
   * @generated
   * @ordered
   */
  ECLIPSE_2020_06(14, "Eclipse_2020_06", "2020-06");

  /**
   * The '<em><b>Juno</b></em>' literal value.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #JUNO
   * @model name="Juno"
   * @generated
   * @ordered
   */
  public static final int JUNO_VALUE = 0;

  /**
   * The '<em><b>Kepler</b></em>' literal value.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #KEPLER
   * @model name="Kepler"
   * @generated
   * @ordered
   */
  public static final int KEPLER_VALUE = 1;

  /**
   * The '<em><b>Luna</b></em>' literal value.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #LUNA
   * @model name="Luna"
   * @generated
   * @ordered
   */
  public static final int LUNA_VALUE = 2;

  /**
   * The '<em><b>Mars</b></em>' literal value.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #MARS
   * @model name="Mars"
   * @generated
   * @ordered
   */
  public static final int MARS_VALUE = 3;

  /**
   * The '<em><b>Neon</b></em>' literal value.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #NEON
   * @model name="Neon"
   * @generated
   * @ordered
   */
  public static final int NEON_VALUE = 4;

  /**
   * The '<em><b>Oxygen</b></em>' literal value.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #OXYGEN
   * @model name="Oxygen"
   * @generated
   * @ordered
   */
  public static final int OXYGEN_VALUE = 5;

  /**
   * The '<em><b>Photon</b></em>' literal value.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #PHOTON
   * @model name="Photon"
   * @generated
   * @ordered
   */
  public static final int PHOTON_VALUE = 6;

  /**
   * The '<em><b>Eclipse 2018 09</b></em>' literal value.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * @since 2.16
   * <!-- end-model-doc -->
   * @see #ECLIPSE_2018_09
   * @model name="Eclipse_2018_09" literal="2018-09"
   * @generated
   * @ordered
   */
  public static final int ECLIPSE_2018_09_VALUE = 7;

  /**
   * The '<em><b>Eclipse 2018 12</b></em>' literal value.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * @since 2.16
   * <!-- end-model-doc -->
   * @see #ECLIPSE_2018_12
   * @model name="Eclipse_2018_12" literal="2018-12"
   * @generated
   * @ordered
   */
  public static final int ECLIPSE_2018_12_VALUE = 8;

  /**
   * The '<em><b>Eclipse 2019 03</b></em>' literal value.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * @since 2.17
   * <!-- end-model-doc -->
   * @see #ECLIPSE_2019_03
   * @model name="Eclipse_2019_03" literal="2019-03"
   * @generated
   * @ordered
   */
  public static final int ECLIPSE_2019_03_VALUE = 9;

  /**
   * The '<em><b>Eclipse 2019 06</b></em>' literal value.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * @since 2.18
   * <!-- end-model-doc -->
   * @see #ECLIPSE_2019_06
   * @model name="Eclipse_2019_06" literal="2019-06"
   * @generated
   * @ordered
   */
  public static final int ECLIPSE_2019_06_VALUE = 10;

  /**
   * The '<em><b>Eclipse 2019 09</b></em>' literal value.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * @since 2.19
   * <!-- end-model-doc -->
   * @see #ECLIPSE_2019_09
   * @model name="Eclipse_2019_09" literal="2019-09"
   * @generated
   * @ordered
   */
  public static final int ECLIPSE_2019_09_VALUE = 11;

  /**
   * The '<em><b>Eclipse 2019 12</b></em>' literal value.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * @since 2.20
   * <!-- end-model-doc -->
   * @see #ECLIPSE_2019_12
   * @model name="Eclipse_2019_12" literal="2019-12"
   * @generated
   * @ordered
   */
  public static final int ECLIPSE_2019_12_VALUE = 12;

  /**
   * The '<em><b>Eclipse 2020 03</b></em>' literal value.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * @since 2.21
   * <!-- end-model-doc -->
   * @see #ECLIPSE_2020_03
   * @model name="Eclipse_2020_03" literal="2020-03"
   * @generated
   * @ordered
   */
  public static final int ECLIPSE_2020_03_VALUE = 13;

  /**
   * The '<em><b>Eclipse 2020 06</b></em>' literal value.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * @since 2.22
   * <!-- end-model-doc -->
   * @see #ECLIPSE_2020_06
   * @model name="Eclipse_2020_06" literal="2020-06"
   * @generated
   * @ordered
   */
  public static final int ECLIPSE_2020_06_VALUE = 14;

  /**
   * An array of all the '<em><b>Gen Eclipse Platform Version</b></em>' enumerators.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private static final GenEclipsePlatformVersion[] VALUES_ARRAY =
    new GenEclipsePlatformVersion[]
    {
      JUNO,
      KEPLER,
      LUNA,
      MARS,
      NEON,
      OXYGEN,
      PHOTON,
      ECLIPSE_2018_09,
      ECLIPSE_2018_12,
      ECLIPSE_2019_03,
      ECLIPSE_2019_06,
      ECLIPSE_2019_09,
      ECLIPSE_2019_12,
      ECLIPSE_2020_03,
      ECLIPSE_2020_06,
    };

  /**
   * A public read-only list of all the '<em><b>Gen Eclipse Platform Version</b></em>' enumerators.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public static final List<GenEclipsePlatformVersion> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));

  /**
   * Returns the '<em><b>Gen Eclipse Platform Version</b></em>' literal with the specified literal value.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param literal the literal.
   * @return the matching enumerator or <code>null</code>.
   * @generated
   */
  public static GenEclipsePlatformVersion get(String literal)
  {
    for (int i = 0; i < VALUES_ARRAY.length; ++i)
    {
      GenEclipsePlatformVersion result = VALUES_ARRAY[i];
      if (result.toString().equals(literal))
      {
        return result;
      }
    }
    return null;
  }

  /**
   * Returns the '<em><b>Gen Eclipse Platform Version</b></em>' literal with the specified name.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param name the name.
   * @return the matching enumerator or <code>null</code>.
   * @generated
   */
  public static GenEclipsePlatformVersion getByName(String name)
  {
    for (int i = 0; i < VALUES_ARRAY.length; ++i)
    {
      GenEclipsePlatformVersion result = VALUES_ARRAY[i];
      if (result.getName().equals(name))
      {
        return result;
      }
    }
    return null;
  }

  /**
   * Returns the '<em><b>Gen Eclipse Platform Version</b></em>' literal with the specified integer value.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the integer value.
   * @return the matching enumerator or <code>null</code>.
   * @generated
   */
  public static GenEclipsePlatformVersion get(int value)
  {
    switch (value)
    {
      case JUNO_VALUE: return JUNO;
      case KEPLER_VALUE: return KEPLER;
      case LUNA_VALUE: return LUNA;
      case MARS_VALUE: return MARS;
      case NEON_VALUE: return NEON;
      case OXYGEN_VALUE: return OXYGEN;
      case PHOTON_VALUE: return PHOTON;
      case ECLIPSE_2018_09_VALUE: return ECLIPSE_2018_09;
      case ECLIPSE_2018_12_VALUE: return ECLIPSE_2018_12;
      case ECLIPSE_2019_03_VALUE: return ECLIPSE_2019_03;
      case ECLIPSE_2019_06_VALUE: return ECLIPSE_2019_06;
      case ECLIPSE_2019_09_VALUE: return ECLIPSE_2019_09;
      case ECLIPSE_2019_12_VALUE: return ECLIPSE_2019_12;
      case ECLIPSE_2020_03_VALUE: return ECLIPSE_2020_03;
      case ECLIPSE_2020_06_VALUE: return ECLIPSE_2020_06;
    }
    return null;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private final int value;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private final String name;

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private final String literal;

  /**
   * Only this class can construct instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  private GenEclipsePlatformVersion(int value, String name, String literal)
  {
    this.value = value;
    this.name = name;
    this.literal = literal;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public int getValue()
  {
    return value;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public String getName()
  {
    return name;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public String getLiteral()
  {
    return literal;
  }

  /**
   * Returns the literal value of the enumerator, which is its string representation.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public String toString()
  {
    return literal;
  }

} //GenEclipsePlatformVersion
