package jetbrains.mps.baseLanguageInternal.textGen;

/*Generated by MPS */

import jetbrains.mps.text.rt.TextGenAspectBase;
import jetbrains.mps.baseLanguageInternal.structure.LanguageConceptSwitch;
import org.jetbrains.annotations.Nullable;
import jetbrains.mps.text.rt.TextGenDescriptor;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.mps.openapi.language.SAbstractConcept;

public class TextGenAspectDescriptor extends TextGenAspectBase {
  private final LanguageConceptSwitch myIndex = new LanguageConceptSwitch();

  public TextGenAspectDescriptor() {
  }

  @Nullable
  @Override
  public TextGenDescriptor getDescriptor(@NotNull SAbstractConcept concept) {
    switch (myIndex.index(concept)) {
      case LanguageConceptSwitch.InternalAnonymousClass:
        return new InternalAnonymousClass_TextGen();
      case LanguageConceptSwitch.InternalAnonymousClassCreator:
        return new InternalAnonymousClassCreator_TextGen();
      case LanguageConceptSwitch.InternalClassCreator:
        return new InternalClassCreator_TextGen();
      case LanguageConceptSwitch.InternalClassExpression:
        return new InternalClassExpression_TextGen();
      case LanguageConceptSwitch.InternalClassifierType:
        return new InternalClassifierType_TextGen();
      case LanguageConceptSwitch.InternalLambdaExpression:
        return new InternalLambdaExpression_TextGen();
      case LanguageConceptSwitch.InternalNewExpression:
        return new InternalNewExpression_TextGen();
      case LanguageConceptSwitch.InternalPartialFieldReference:
        return new InternalPartialFieldReference_TextGen();
      case LanguageConceptSwitch.InternalPartialInstanceMethodCall:
        return new InternalPartialInstanceMethodCall_TextGen();
      case LanguageConceptSwitch.InternalStaticFieldReference:
        return new InternalStaticFieldReference_TextGen();
      case LanguageConceptSwitch.InternalStaticMethodCall:
        return new InternalStaticMethodCall_TextGen();
      case LanguageConceptSwitch.InternalSuperMethodCallOperation:
        return new InternalSuperMethodCallOperation_TextGen();
      case LanguageConceptSwitch.InternalThisExpression:
        return new InternalThisExpression_TextGen();
      case LanguageConceptSwitch.InternalVariableReference:
        return new InternalVariableReference_TextGen();
    }
    return null;
  }

}
