package jetbrains.mps.make.facet.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 myForeignParametersComponentExpression__BehaviorDescriptor = new ForeignParametersComponentExpression__BehaviorDescriptor();
  private final BHDescriptor myIFacet__BehaviorDescriptor = new IFacet__BehaviorDescriptor();
  private final BHDescriptor myFacetDeclaration__BehaviorDescriptor = new FacetDeclaration__BehaviorDescriptor();
  private final BHDescriptor myTargetDeclaration__BehaviorDescriptor = new TargetDeclaration__BehaviorDescriptor();
  private final BHDescriptor myFacetReferenceExpression__BehaviorDescriptor = new FacetReferenceExpression__BehaviorDescriptor();
  private final BHDescriptor myParametersDeclaration__BehaviorDescriptor = new ParametersDeclaration__BehaviorDescriptor();
  private final BHDescriptor myLocalParametersComponentExpression__BehaviorDescriptor = new LocalParametersComponentExpression__BehaviorDescriptor();
  private final BHDescriptor myTargetReferenceExpression__BehaviorDescriptor = new TargetReferenceExpression__BehaviorDescriptor();

  public BehaviorAspectDescriptor() {
  }

  @Nullable
  public BHDescriptor getDescriptor(@NotNull SAbstractConcept concept) {
    SAbstractConcept cncpt = concept;
    switch (conceptIndex.index(cncpt)) {
      case 0:
        return myFacetDeclaration__BehaviorDescriptor;
      case 1:
        return myFacetReferenceExpression__BehaviorDescriptor;
      case 2:
        return myForeignParametersComponentExpression__BehaviorDescriptor;
      case 3:
        return myIFacet__BehaviorDescriptor;
      case 4:
        return myLocalParametersComponentExpression__BehaviorDescriptor;
      case 5:
        return myParametersDeclaration__BehaviorDescriptor;
      case 6:
        return myTargetDeclaration__BehaviorDescriptor;
      case 7:
        return myTargetReferenceExpression__BehaviorDescriptor;
      default:
    }
    return null;
  }
  private static final ConceptSwitchIndex conceptIndex = new ConceptSwitchIndexBuilder().put(MetaIdFactory.conceptId(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x5912a2ab1cd24c13L), MetaIdFactory.conceptId(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x639ef64ff4850bb0L), MetaIdFactory.conceptId(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x2e69d2eba535f3b1L), MetaIdFactory.conceptId(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x5912a2ab1cd24c11L), MetaIdFactory.conceptId(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x6598ce4d2f231cb3L), MetaIdFactory.conceptId(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x6598ce4d2f22a97eL), MetaIdFactory.conceptId(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x5912a2ab1cd24c3dL), MetaIdFactory.conceptId(0x696c11654a59463bL, 0xbc5d902caab85dd0L, 0x78c916bd7aecaff7L)).seal();
}
