package jetbrains.mps.baseLanguage.math.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 myInIntervalExpression__BehaviorDescriptor = new InIntervalExpression__BehaviorDescriptor();
  private final BHDescriptor myIntervalContainsExpression__BehaviorDescriptor = new IntervalContainsExpression__BehaviorDescriptor();
  private final BHDescriptor myMathSymbol__BehaviorDescriptor = new MathSymbol__BehaviorDescriptor();
  private final BHDescriptor myBigProdExpression__BehaviorDescriptor = new BigProdExpression__BehaviorDescriptor();
  private final BHDescriptor myBigMaxExpression__BehaviorDescriptor = new BigMaxExpression__BehaviorDescriptor();
  private final BHDescriptor myBigMinExpression__BehaviorDescriptor = new BigMinExpression__BehaviorDescriptor();
  private final BHDescriptor myBigSumExpression__BehaviorDescriptor = new BigSumExpression__BehaviorDescriptor();
  private final BHDescriptor myDecimalBinaryOperation__BehaviorDescriptor = new DecimalBinaryOperation__BehaviorDescriptor();
  private final BHDescriptor myDecimalDivExpression__BehaviorDescriptor = new DecimalDivExpression__BehaviorDescriptor();
  private final BHDescriptor myDecimalMulExpression__BehaviorDescriptor = new DecimalMulExpression__BehaviorDescriptor();
  private final BHDescriptor myDecimalPlusExpression__BehaviorDescriptor = new DecimalPlusExpression__BehaviorDescriptor();
  private final BHDescriptor myDecimalMinusExpression__BehaviorDescriptor = new DecimalMinusExpression__BehaviorDescriptor();
  private final BHDescriptor myMatrixInverseOperation__BehaviorDescriptor = new MatrixInverseOperation__BehaviorDescriptor();
  private final BHDescriptor myMathContext__BehaviorDescriptor = new MathContext__BehaviorDescriptor();
  private final BHDescriptor myMatrixType__BehaviorDescriptor = new MatrixType__BehaviorDescriptor();
  private final BHDescriptor myMatrixConstructor__BehaviorDescriptor = new MatrixConstructor__BehaviorDescriptor();
  private final BHDescriptor myMatrixElementAccessExpression__BehaviorDescriptor = new MatrixElementAccessExpression__BehaviorDescriptor();
  private final BHDescriptor myExponentialOperation__BehaviorDescriptor = new ExponentialOperation__BehaviorDescriptor();
  private final BHDescriptor myMatrixExponentialOperation__BehaviorDescriptor = new MatrixExponentialOperation__BehaviorDescriptor();
  private final BHDescriptor myConjugateOperation__BehaviorDescriptor = new ConjugateOperation__BehaviorDescriptor();
  private final BHDescriptor myTransposeOperation__BehaviorDescriptor = new TransposeOperation__BehaviorDescriptor();

  public BehaviorAspectDescriptor() {
  }

  @Nullable
  public BHDescriptor getDescriptor(@NotNull SAbstractConcept concept) {
    SAbstractConcept cncpt = concept;
    switch (conceptIndex.index(cncpt)) {
      case 0:
        return myBigMaxExpression__BehaviorDescriptor;
      case 1:
        return myBigMinExpression__BehaviorDescriptor;
      case 2:
        return myBigProdExpression__BehaviorDescriptor;
      case 3:
        return myBigSumExpression__BehaviorDescriptor;
      case 4:
        return myConjugateOperation__BehaviorDescriptor;
      case 5:
        return myDecimalBinaryOperation__BehaviorDescriptor;
      case 6:
        return myDecimalDivExpression__BehaviorDescriptor;
      case 7:
        return myDecimalMinusExpression__BehaviorDescriptor;
      case 8:
        return myDecimalMulExpression__BehaviorDescriptor;
      case 9:
        return myDecimalPlusExpression__BehaviorDescriptor;
      case 10:
        return myExponentialOperation__BehaviorDescriptor;
      case 11:
        return myInIntervalExpression__BehaviorDescriptor;
      case 12:
        return myIntervalContainsExpression__BehaviorDescriptor;
      case 13:
        return myMathContext__BehaviorDescriptor;
      case 14:
        return myMathSymbol__BehaviorDescriptor;
      case 15:
        return myMatrixConstructor__BehaviorDescriptor;
      case 16:
        return myMatrixElementAccessExpression__BehaviorDescriptor;
      case 17:
        return myMatrixExponentialOperation__BehaviorDescriptor;
      case 18:
        return myMatrixInverseOperation__BehaviorDescriptor;
      case 19:
        return myMatrixType__BehaviorDescriptor;
      case 20:
        return myTransposeOperation__BehaviorDescriptor;
      default:
    }
    return null;
  }
  private static final ConceptSwitchIndex conceptIndex = new ConceptSwitchIndexBuilder().put(MetaIdFactory.conceptId(0x3304fc6e7c6b401eL, 0xa016b944934bb21fL, 0x11fe0e16047L), MetaIdFactory.conceptId(0x3304fc6e7c6b401eL, 0xa016b944934bb21fL, 0x11fe0e1674dL), MetaIdFactory.conceptId(0x3304fc6e7c6b401eL, 0xa016b944934bb21fL, 0x11fe0e12aa0L), MetaIdFactory.conceptId(0x3304fc6e7c6b401eL, 0xa016b944934bb21fL, 0x11fe188eafbL), MetaIdFactory.conceptId(0x3304fc6e7c6b401eL, 0xa016b944934bb21fL, 0x64b1e972e64afe53L), MetaIdFactory.conceptId(0x3304fc6e7c6b401eL, 0xa016b944934bb21fL, 0x120568d9c5bL), MetaIdFactory.conceptId(0x3304fc6e7c6b401eL, 0xa016b944934bb21fL, 0x1207697107bL), MetaIdFactory.conceptId(0x3304fc6e7c6b401eL, 0xa016b944934bb21fL, 0x12076988136L), MetaIdFactory.conceptId(0x3304fc6e7c6b401eL, 0xa016b944934bb21fL, 0x120769754c8L), MetaIdFactory.conceptId(0x3304fc6e7c6b401eL, 0xa016b944934bb21fL, 0x1207697a328L), MetaIdFactory.conceptId(0x3304fc6e7c6b401eL, 0xa016b944934bb21fL, 0x64b1e972e6443a20L), MetaIdFactory.conceptId(0x3304fc6e7c6b401eL, 0xa016b944934bb21fL, 0x11fb8483964L), MetaIdFactory.conceptId(0x3304fc6e7c6b401eL, 0xa016b944934bb21fL, 0x11fb8483968L), MetaIdFactory.conceptId(0x3304fc6e7c6b401eL, 0xa016b944934bb21fL, 0x1a6fbb5a434b008bL), MetaIdFactory.conceptId(0x3304fc6e7c6b401eL, 0xa016b944934bb21fL, 0x11fe0ca1899L), MetaIdFactory.conceptId(0x3304fc6e7c6b401eL, 0xa016b944934bb21fL, 0x42d5783a626b0a85L), MetaIdFactory.conceptId(0x3304fc6e7c6b401eL, 0xa016b944934bb21fL, 0x58aab8999c8f432aL), MetaIdFactory.conceptId(0x3304fc6e7c6b401eL, 0xa016b944934bb21fL, 0x64b1e972e647ad7dL), MetaIdFactory.conceptId(0x3304fc6e7c6b401eL, 0xa016b944934bb21fL, 0x13afebc2af505abcL), MetaIdFactory.conceptId(0x3304fc6e7c6b401eL, 0xa016b944934bb21fL, 0x42d5783a6267f776L), MetaIdFactory.conceptId(0x3304fc6e7c6b401eL, 0xa016b944934bb21fL, 0x7418107bdc9576d4L)).seal();
}
