package jetbrains.mps.lang.pattern.structure;

/*Generated by MPS */

import jetbrains.mps.lang.smodel.LanguageConceptIndex;
import jetbrains.mps.lang.smodel.LanguageConceptIndexBuilder;
import jetbrains.mps.smodel.adapter.ids.SConceptId;
import org.jetbrains.mps.openapi.language.SAbstractConcept;

public final class LanguageConceptSwitch {
  private final LanguageConceptIndex myIndex;
  public static final int AbstractPatternProvider = 0;
  public static final int ActionAsPattern = 1;
  public static final int ActionStatement = 2;
  public static final int AsPattern = 3;
  public static final int ExpressionPatternProvider = 4;
  public static final int GeneratorInternal_ChildDescriptor = 5;
  public static final int GeneratorInternal_PropertyDescriptor = 6;
  public static final int GeneratorInternal_ReferenceDescriptor = 7;
  public static final int InlinePatternProvider = 8;
  public static final int InsertAfterPosition = 9;
  public static final int InsertBeforePosition = 10;
  public static final int InsertPosition = 11;
  public static final int LabeledNode = 12;
  public static final int LinkPatternVariableDeclaration = 13;
  public static final int ListPattern = 14;
  public static final int LocalPatternReference = 15;
  public static final int OrPattern = 16;
  public static final int OrPatternClause = 17;
  public static final int OrPatternVariableReference = 18;
  public static final int Pattern = 19;
  public static final int PatternBuilder = 20;
  public static final int PatternBuilderClassifierMember = 21;
  public static final int PatternBuilderVariable = 22;
  public static final int PatternBuilderVariableReference = 23;
  public static final int PatternExpression = 24;
  public static final int PatternSwitchCase = 25;
  public static final int PatternSwitchStatement = 26;
  public static final int PatternVariableDeclaration = 27;
  public static final int PatternVariableNode = 28;
  public static final int PatternVariableProperty = 29;
  public static final int PatternVariableReference = 30;
  public static final int PropertyPatternVariableDeclaration = 31;
  public static final int QualifiedPatternReference = 32;
  public static final int WildcardPattern = 33;

  public LanguageConceptSwitch() {
    LanguageConceptIndexBuilder builder = new LanguageConceptIndexBuilder(0xd4615e3bd6714ba9L, 0xaf012b78369b0ba7L);
    builder.put(0x174c7ed18b16ecfbL, AbstractPatternProvider);
    builder.put(0x3d3ef1fc1814cb54L, ActionAsPattern);
    builder.put(0x3d3ef1fc1815d960L, ActionStatement);
    builder.put(0x108a9cb478dL, AsPattern);
    builder.put(0x6e2e4373b51373f8L, ExpressionPatternProvider);
    builder.put(0x7e881d31a4196e17L, GeneratorInternal_ChildDescriptor);
    builder.put(0x7e881d31a4198f6eL, GeneratorInternal_PropertyDescriptor);
    builder.put(0x7e881d31a4198b56L, GeneratorInternal_ReferenceDescriptor);
    builder.put(0x7c36ae76ea76f63bL, InlinePatternProvider);
    builder.put(0x16e4c142caf2bd38L, InsertAfterPosition);
    builder.put(0x16e4c142caf2bd3aL, InsertBeforePosition);
    builder.put(0x16e4c142caf2bd3cL, InsertPosition);
    builder.put(0xd6beaaa1fc92ce7L, LabeledNode);
    builder.put(0x108d36d955aL, LinkPatternVariableDeclaration);
    builder.put(0x108aa36731aL, ListPattern);
    builder.put(0x174c7ed18b16ecfcL, LocalPatternReference);
    builder.put(0x27f758f8bc6aaa84L, OrPattern);
    builder.put(0x4363a36537b0b250L, OrPatternClause);
    builder.put(0x3b2f5e7b070d317cL, OrPatternVariableReference);
    builder.put(0x108a9cb478fL, Pattern);
    builder.put(0x240625574192fa19L, PatternBuilder);
    builder.put(0x50f8d1ebd50bbeb0L, PatternBuilderClassifierMember);
    builder.put(0x26c46d140aa6106eL, PatternBuilderVariable);
    builder.put(0x26c46d140aa61085L, PatternBuilderVariableReference);
    builder.put(0x108a9cb4791L, PatternExpression);
    builder.put(0x174c7ed18a9a3416L, PatternSwitchCase);
    builder.put(0x174c7ed18a995b51L, PatternSwitchStatement);
    builder.put(0x108a9cb4793L, PatternVariableDeclaration);
    builder.put(0x24062557419efb70L, PatternVariableNode);
    builder.put(0x60f18f425c769962L, PatternVariableProperty);
    builder.put(0x2b7df577ffbb6a85L, PatternVariableReference);
    builder.put(0x108a9cb4795L, PropertyPatternVariableDeclaration);
    builder.put(0x6e2e4373b51396d8L, QualifiedPatternReference);
    builder.put(0x108a9cb4797L, WildcardPattern);
    myIndex = builder.seal();
  }

  /*package*/ int index(SConceptId cid) {
    return myIndex.index(cid);
  }

  public int index(SAbstractConcept concept) {
    return myIndex.index(concept);
  }
}
