package jetbrains.mps.lang.structure.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 AbstractConceptDeclaration = 0;
  public static final int AggregationLinkDeclarationScopeKind = 1;
  public static final int AttributeInfo = 2;
  public static final int AttributeInfo_AttributedConcept = 3;
  public static final int AttributeInfo_IsMultiple = 4;
  public static final int ConceptDeclaration = 5;
  public static final int ConceptDeclarationReference = 6;
  public static final int ConstrainedDataTypeDeclaration = 7;
  public static final int DataTypeDeclaration = 8;
  public static final int DeprecatedNodeAnnotation = 9;
  public static final int DocumentationObjective = 10;
  public static final int DocumentationObjectiveRef = 11;
  public static final int DocumentedNodeAnnotation = 12;
  public static final int EnumCustomMethodReplacementInfo = 13;
  public static final int EnumMigrationInfo = 14;
  public static final int EnumPropertyMigrationInfo = 15;
  public static final int EnumerationDataTypeDeclaration_Old = 16;
  public static final int EnumerationDeclaration = 17;
  public static final int EnumerationMemberDeclaration = 18;
  public static final int EnumerationMemberDeclaration_Old = 19;
  public static final int ExperimentalAPINodeAttribute = 20;
  public static final int IConceptAspect = 21;
  public static final int IEnumeration = 22;
  public static final int INamedAspect = 23;
  public static final int INamedStructureElement = 24;
  public static final int IStructureDeprecatable = 25;
  public static final int IStructureElement = 26;
  public static final int InterfaceConceptDeclaration = 27;
  public static final int InterfaceConceptReference = 28;
  public static final int LinkDeclaration = 29;
  public static final int MarkerInterfaceAttribute = 30;
  public static final int PrimitiveDataTypeDeclaration = 31;
  public static final int PropertyDeclaration = 32;
  public static final int RefPresentationTemplate = 33;
  public static final int ReferenceLinkDeclartionScopeKind = 34;
  public static final int SmartReferenceAttribute = 35;
  public static final int StructureAspectDeputy = 36;

  public LanguageConceptSwitch() {
    LanguageConceptIndexBuilder builder = new LanguageConceptIndexBuilder(0xc72da2b97cce4447L, 0x8389f407dc1158b7L);
    builder.put(0x1103553c5ffL, AbstractConceptDeclaration);
    builder.put(0x4f57884e07c08a31L, AggregationLinkDeclarationScopeKind);
    builder.put(0x29889a701b928195L, AttributeInfo);
    builder.put(0x5405fd03496acb49L, AttributeInfo_AttributedConcept);
    builder.put(0x5405fd034959f7dcL, AttributeInfo_IsMultiple);
    builder.put(0xf979ba0450L, ConceptDeclaration);
    builder.put(0x6ed0e6c2f31b3f42L, ConceptDeclarationReference);
    builder.put(0xfc268c7a37L, ConstrainedDataTypeDeclaration);
    builder.put(0xfc26875dfaL, DataTypeDeclaration);
    builder.put(0x11d0a70ae54L, DeprecatedNodeAnnotation);
    builder.put(0x6d1df6c2700b0eaeL, DocumentationObjective);
    builder.put(0x6d1df6c2700b0eb5L, DocumentationObjectiveRef);
    builder.put(0x6d1df6c2700b0ea9L, DocumentedNodeAnnotation);
    builder.put(0x2e9237b686f1e943L, EnumCustomMethodReplacementInfo);
    builder.put(0x160b046db949c266L, EnumMigrationInfo);
    builder.put(0x5a14f1035942a5abL, EnumPropertyMigrationInfo);
    builder.put(0xfc26875dfbL, EnumerationDataTypeDeclaration_Old);
    builder.put(0x2e770ca32c607c5fL, EnumerationDeclaration);
    builder.put(0x2e770ca32c607c60L, EnumerationMemberDeclaration);
    builder.put(0xfc321331b2L, EnumerationMemberDeclaration_Old);
    builder.put(0x5cd3594638ad845L, ExperimentalAPINodeAttribute);
    builder.put(0x24614259e94f0c84L, IConceptAspect);
    builder.put(0xeeb344f64a629e5L, IEnumeration);
    builder.put(0x6e62cf10d25a65e0L, INamedAspect);
    builder.put(0x160b046db90a2b95L, INamedStructureElement);
    builder.put(0x11d2ea63881L, IStructureDeprecatable);
    builder.put(0x160b046db90b56deL, IStructureElement);
    builder.put(0x1103556dcafL, InterfaceConceptDeclaration);
    builder.put(0x110356fc618L, InterfaceConceptReference);
    builder.put(0xf979bd086aL, LinkDeclaration);
    builder.put(0x4d7dcbe8bf135fd0L, MarkerInterfaceAttribute);
    builder.put(0xfc3652de27L, PrimitiveDataTypeDeclaration);
    builder.put(0xf979bd086bL, PropertyDeclaration);
    builder.put(0x7ab7b29c4d66855eL, RefPresentationTemplate);
    builder.put(0x4f57884e07c08838L, ReferenceLinkDeclartionScopeKind);
    builder.put(0x7ab7b29c4d6297e8L, SmartReferenceAttribute);
    builder.put(0x4255a988ca8ae0fcL, StructureAspectDeputy);
    myIndex = builder.seal();
  }

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

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