package jetbrains.mps.lang.script.behavior;

/*Generated by MPS */

import jetbrains.mps.core.aspects.behaviour.BaseBehaviorAspectDescriptor;
import jetbrains.mps.core.aspects.behaviour.api.BHDescriptor;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.mps.openapi.language.SAbstractConcept;
import jetbrains.mps.lang.smodel.ConceptSwitchIndex;
import jetbrains.mps.lang.smodel.ConceptSwitchIndexBuilder;
import jetbrains.mps.smodel.adapter.ids.MetaIdFactory;

public final class BehaviorAspectDescriptor extends BaseBehaviorAspectDescriptor {
  private final BHDescriptor myMigrationScriptPart_Instance_Predicate__BehaviorDescriptor = new MigrationScriptPart_Instance_Predicate__BehaviorDescriptor();
  private final BHDescriptor myMigrationScriptPart_Instance_Updater__BehaviorDescriptor = new MigrationScriptPart_Instance_Updater__BehaviorDescriptor();
  private final BHDescriptor myPullUpMethod__BehaviorDescriptor = new PullUpMethod__BehaviorDescriptor();
  private final BHDescriptor myDirectMethodSpecification__BehaviorDescriptor = new DirectMethodSpecification__BehaviorDescriptor();
  private final BHDescriptor myFQNameMethodSpecification__BehaviorDescriptor = new FQNameMethodSpecification__BehaviorDescriptor();
  private final BHDescriptor myAbstractMethodSpecification__BehaviorDescriptor = new AbstractMethodSpecification__BehaviorDescriptor();
  private final BHDescriptor myAbstractClassifierSpecification__BehaviorDescriptor = new AbstractClassifierSpecification__BehaviorDescriptor();
  private final BHDescriptor myDirectClassifierSpecification__BehaviorDescriptor = new DirectClassifierSpecification__BehaviorDescriptor();
  private final BHDescriptor myFQNameClassifierSpecification__BehaviorDescriptor = new FQNameClassifierSpecification__BehaviorDescriptor();

  public BehaviorAspectDescriptor() {
  }

  @Nullable
  public BHDescriptor getDescriptor(@NotNull SAbstractConcept concept) {
    SAbstractConcept cncpt = concept;
    switch (conceptIndex.index(cncpt)) {
      case 0:
        return myAbstractClassifierSpecification__BehaviorDescriptor;
      case 1:
        return myAbstractMethodSpecification__BehaviorDescriptor;
      case 2:
        return myDirectClassifierSpecification__BehaviorDescriptor;
      case 3:
        return myDirectMethodSpecification__BehaviorDescriptor;
      case 4:
        return myFQNameClassifierSpecification__BehaviorDescriptor;
      case 5:
        return myFQNameMethodSpecification__BehaviorDescriptor;
      case 6:
        return myMigrationScriptPart_Instance_Predicate__BehaviorDescriptor;
      case 7:
        return myMigrationScriptPart_Instance_Updater__BehaviorDescriptor;
      case 8:
        return myPullUpMethod__BehaviorDescriptor;
      default:
    }
    return null;
  }
  private static final ConceptSwitchIndex conceptIndex = new ConceptSwitchIndexBuilder().put(MetaIdFactory.conceptId(0xeddeefac2d64437L, 0xbc2cde50fd4ce470L, 0x4b6b6d7b2a61a23aL), MetaIdFactory.conceptId(0xeddeefac2d64437L, 0xbc2cde50fd4ce470L, 0x4243146ba1b46c9dL), MetaIdFactory.conceptId(0xeddeefac2d64437L, 0xbc2cde50fd4ce470L, 0x4b6b6d7b2a638d23L), MetaIdFactory.conceptId(0xeddeefac2d64437L, 0xbc2cde50fd4ce470L, 0x1fcdfeb518c43583L), MetaIdFactory.conceptId(0xeddeefac2d64437L, 0xbc2cde50fd4ce470L, 0x4b6b6d7b2a638ddbL), MetaIdFactory.conceptId(0xeddeefac2d64437L, 0xbc2cde50fd4ce470L, 0x4243146ba1b412e3L), MetaIdFactory.conceptId(0xeddeefac2d64437L, 0xbc2cde50fd4ce470L, 0x11225f8301cL), MetaIdFactory.conceptId(0xeddeefac2d64437L, 0xbc2cde50fd4ce470L, 0x11225fec23cL), MetaIdFactory.conceptId(0xeddeefac2d64437L, 0xbc2cde50fd4ce470L, 0xbc887f0950c99c4L)).seal();
}
