package jetbrains.mps.transformation.test.inputLang.structure;

/*Generated by MPS */

import jetbrains.mps.smodel.runtime.EnumerationDescriptorBase;
import jetbrains.mps.smodel.runtime.EnumerationDescriptor;
import jetbrains.mps.lang.smodel.EnumerationLiteralsIndex;
import java.util.List;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.NotNull;

public class EnumerationDescriptor_UseInTest extends EnumerationDescriptorBase {

  public EnumerationDescriptor_UseInTest() {
    super(0xab0ae915e3b54f35L, 0xb55ac655d649a03cL, 0x117eb3f7611L, "UseInTest", "r:00000000-0000-4000-0000-011c895905f4(jetbrains.mps.transformation.test.inputLang.structure)/4241665505353446859");
  }

  private final EnumerationDescriptor.MemberDescriptor myMember_test1_0 = new EnumerationDescriptor.MemberDescriptor("test1", "test1", 0x117eb3f7612L, "r:00000000-0000-4000-0000-011c895905f4(jetbrains.mps.transformation.test.inputLang.structure)/4241665505353446861");
  private final EnumerationDescriptor.MemberDescriptor myMember_getPrevInputTest_0 = new EnumerationDescriptor.MemberDescriptor("getPrevInputTest", "getPrevInputTest", 0x117eb40957dL, "r:00000000-0000-4000-0000-011c895905f4(jetbrains.mps.transformation.test.inputLang.structure)/4241665505353446862");
  private final EnumerationDescriptor.MemberDescriptor myMember_reduceInheritors_0 = new EnumerationDescriptor.MemberDescriptor("reduceInheritors", "reduceInheritors", 0x118e69bfe8dL, "r:00000000-0000-4000-0000-011c895905f4(jetbrains.mps.transformation.test.inputLang.structure)/4241665505353446863");
  private final EnumerationDescriptor.MemberDescriptor myMember_reduceExpressionToStatement_0 = new EnumerationDescriptor.MemberDescriptor("reduceExpressionToStatement", "reduceExpressionToStatement", 0x11986c2f8ccL, "r:00000000-0000-4000-0000-011c895905f4(jetbrains.mps.transformation.test.inputLang.structure)/4241665505353446864");
  private final EnumerationDescriptor.MemberDescriptor myMember_dontApplyReductionTwice_0 = new EnumerationDescriptor.MemberDescriptor("dontApplyReductionTwice", "dontApplyReductionTwice", 0x119a1fd77a4L, "r:00000000-0000-4000-0000-011c895905f4(jetbrains.mps.transformation.test.inputLang.structure)/4241665505353446865");
  private final EnumerationDescriptor.MemberDescriptor myMember_weaveManyToSingularChild_0 = new EnumerationDescriptor.MemberDescriptor("weaveManyToSingularChild", "weaveManyToSingularChild", 0x11bc25b9884L, "r:00000000-0000-4000-0000-011c895905f4(jetbrains.mps.transformation.test.inputLang.structure)/4241665505353446866");
  private final EnumerationDescriptor.MemberDescriptor myMember_reduceOneToMany_0 = new EnumerationDescriptor.MemberDescriptor("reduceOneToMany", "reduceOneToMany", 0x4bddbad571550d6L, "r:00000000-0000-4000-0000-011c895905f4(jetbrains.mps.transformation.test.inputLang.structure)/4241665505353446867");
  private final EnumerationDescriptor.MemberDescriptor myMember_argsInTemplDeclRef_0 = new EnumerationDescriptor.MemberDescriptor("argsInTemplDeclRef", "argsInTemplDeclRef", 0x6809b95ff9d9a17eL, "r:00000000-0000-4000-0000-011c895905f4(jetbrains.mps.transformation.test.inputLang.structure)/4241665505353446868");
  private final EnumerationDescriptor.MemberDescriptor myMember_argsInTemplateCall_0 = new EnumerationDescriptor.MemberDescriptor("argsInTemplateCall", "Expressions in ITemplateCall arguments", 0x2e16062328916bbL, "r:00000000-0000-4000-0000-011c895905f4(jetbrains.mps.transformation.test.inputLang.structure)/4241665505353446869");
  private final EnumerationDescriptor.MemberDescriptor myMember_sameInputTemplateRef_0 = new EnumerationDescriptor.MemberDescriptor("sameInputTemplateRef", "Multiple output nodes from template against single input", 0x46ec5377fe3b9e63L, "r:00000000-0000-4000-0000-011c895905f4(jetbrains.mps.transformation.test.inputLang.structure)/5110551451990204003");
  private final EnumerationDescriptor.MemberDescriptor myMember_none_0 = new EnumerationDescriptor.MemberDescriptor("none", "none", 0x117eb41a22bL, "r:00000000-0000-4000-0000-011c895905f4(jetbrains.mps.transformation.test.inputLang.structure)/4241665505353446870");

  private final EnumerationLiteralsIndex myIndex = EnumerationLiteralsIndex.build(0xab0ae915e3b54f35L, 0xb55ac655d649a03cL, 0x117eb3f7611L, 0x117eb3f7612L, 0x117eb40957dL, 0x118e69bfe8dL, 0x11986c2f8ccL, 0x119a1fd77a4L, 0x11bc25b9884L, 0x4bddbad571550d6L, 0x6809b95ff9d9a17eL, 0x2e16062328916bbL, 0x46ec5377fe3b9e63L, 0x117eb41a22bL);
  private final List<EnumerationDescriptor.MemberDescriptor> myMembers = new EnumerationDescriptorBase.MembersList(myIndex, myMember_test1_0, myMember_getPrevInputTest_0, myMember_reduceInheritors_0, myMember_reduceExpressionToStatement_0, myMember_dontApplyReductionTwice_0, myMember_weaveManyToSingularChild_0, myMember_reduceOneToMany_0, myMember_argsInTemplDeclRef_0, myMember_argsInTemplateCall_0, myMember_sameInputTemplateRef_0, myMember_none_0);

  @Nullable
  @Override
  public EnumerationDescriptor.MemberDescriptor getDefault() {
    return myMember_none_0;
  }

  @NotNull
  @Override
  public List<EnumerationDescriptor.MemberDescriptor> getMembers() {
    return myMembers;
  }

  @Nullable
  @Override
  public EnumerationDescriptor.MemberDescriptor getMember(@Nullable String memberName) {
    if (memberName == null) {
      return null;
    }
    switch (memberName) {
      case "test1":
        return myMember_test1_0;
      case "getPrevInputTest":
        return myMember_getPrevInputTest_0;
      case "reduceInheritors":
        return myMember_reduceInheritors_0;
      case "reduceExpressionToStatement":
        return myMember_reduceExpressionToStatement_0;
      case "dontApplyReductionTwice":
        return myMember_dontApplyReductionTwice_0;
      case "weaveManyToSingularChild":
        return myMember_weaveManyToSingularChild_0;
      case "reduceOneToMany":
        return myMember_reduceOneToMany_0;
      case "argsInTemplDeclRef":
        return myMember_argsInTemplDeclRef_0;
      case "argsInTemplateCall":
        return myMember_argsInTemplateCall_0;
      case "sameInputTemplateRef":
        return myMember_sameInputTemplateRef_0;
      case "none":
        return myMember_none_0;
    }
    return null;
  }

  @Nullable
  @Override
  public EnumerationDescriptor.MemberDescriptor getMember(long idValue) {
    int index = myIndex.index(idValue);
    if (index == -1) {
      return null;
    }
    return myMembers.get(index);
  }
}
