package constraints.test.structure;

/*Generated by MPS */

import jetbrains.mps.smodel.runtime.ConceptPresentationAspectBase;
import jetbrains.mps.smodel.runtime.ConceptPresentation;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.mps.openapi.language.SAbstractConcept;
import jetbrains.mps.smodel.runtime.ConceptPresentationBuilder;

public class ConceptPresentationAspectImpl extends ConceptPresentationAspectBase {
  private ConceptPresentation props_TestConstraintsInheritance_Base;
  private ConceptPresentation props_TestConstraintsInheritance_Concept_CC;
  private ConceptPresentation props_TestConstraintsInheritance_Concept_CI;
  private ConceptPresentation props_TestConstraintsInheritance_Concept_II;
  private ConceptPresentation props_TestConstraintsInheritance_Container;
  private ConceptPresentation props_TestConstraintsInheritance_Derived1_Constrained;
  private ConceptPresentation props_TestConstraintsInheritance_Derived1_Inherited;
  private ConceptPresentation props_TestConstraintsInheritance_Derived2_Constrained;
  private ConceptPresentation props_TestConstraintsInheritance_Derived2_Inherited;
  private ConceptPresentation props_TestConstraintsInvocation_CanBeAncestorFail;
  private ConceptPresentation props_TestConstraintsInvocation_CanBeChildFail;
  private ConceptPresentation props_TestConstraintsInvocation_CanBeParentFail;
  private ConceptPresentation props_TestConstraintsInvocation_Child;
  private ConceptPresentation props_TestRefConstraints_BaseReference_Handler;
  private ConceptPresentation props_TestRefConstraints_BaseReference_Scoping;
  private ConceptPresentation props_TestRefConstraints_Container;
  private ConceptPresentation props_TestRefConstraints_SubReference_HandlerSuperHandler;
  private ConceptPresentation props_TestRefConstraints_SubReference_HandlerSuperScoping;
  private ConceptPresentation props_TestRefConstraints_SubReference_ScopingSuperHandler;
  private ConceptPresentation props_TestRefConstraints_SubReference_ScopingSuperScoping;
  private ConceptPresentation props_TestRefConstraints_Target;

  @Override
  @Nullable
  public ConceptPresentation getDescriptor(SAbstractConcept c) {
    StructureAspectDescriptor structureDescriptor = (StructureAspectDescriptor) myLanguageRuntime.getAspect(jetbrains.mps.smodel.runtime.StructureAspectDescriptor.class);
    switch (structureDescriptor.internalIndex(c)) {
      case LanguageConceptSwitch.TestConstraintsInheritance_Base:
        if (props_TestConstraintsInheritance_Base == null) {
          ConceptPresentationBuilder cpb = new ConceptPresentationBuilder();
          props_TestConstraintsInheritance_Base = cpb.create();
        }
        return props_TestConstraintsInheritance_Base;
      case LanguageConceptSwitch.TestConstraintsInheritance_Concept_CC:
        if (props_TestConstraintsInheritance_Concept_CC == null) {
          ConceptPresentationBuilder cpb = new ConceptPresentationBuilder();
          cpb.rawPresentation("CF - composition of D1 & D2 CFs");
          props_TestConstraintsInheritance_Concept_CC = cpb.create();
        }
        return props_TestConstraintsInheritance_Concept_CC;
      case LanguageConceptSwitch.TestConstraintsInheritance_Concept_CI:
        if (props_TestConstraintsInheritance_Concept_CI == null) {
          ConceptPresentationBuilder cpb = new ConceptPresentationBuilder();
          cpb.shortDesc("CF - composition of D1 & D2 CFs. D2 inherites Base CF. Hence, CF - composition of D1 & Base CFs");
          cpb.rawPresentation("TestConstraintsInheritance_Concept_CI");
          props_TestConstraintsInheritance_Concept_CI = cpb.create();
        }
        return props_TestConstraintsInheritance_Concept_CI;
      case LanguageConceptSwitch.TestConstraintsInheritance_Concept_II:
        if (props_TestConstraintsInheritance_Concept_II == null) {
          ConceptPresentationBuilder cpb = new ConceptPresentationBuilder();
          cpb.rawPresentation("CF - composition of D1 & D2 CFs. D2 & D1 inherites Base CF. Hence, CF - Base CF ");
          props_TestConstraintsInheritance_Concept_II = cpb.create();
        }
        return props_TestConstraintsInheritance_Concept_II;
      case LanguageConceptSwitch.TestConstraintsInheritance_Container:
        if (props_TestConstraintsInheritance_Container == null) {
          ConceptPresentationBuilder cpb = new ConceptPresentationBuilder();
          cpb.rawPresentation("TestConstraintsInheritance_Container");
          props_TestConstraintsInheritance_Container = cpb.create();
        }
        return props_TestConstraintsInheritance_Container;
      case LanguageConceptSwitch.TestConstraintsInheritance_Derived1_Constrained:
        if (props_TestConstraintsInheritance_Derived1_Constrained == null) {
          ConceptPresentationBuilder cpb = new ConceptPresentationBuilder();
          props_TestConstraintsInheritance_Derived1_Constrained = cpb.create();
        }
        return props_TestConstraintsInheritance_Derived1_Constrained;
      case LanguageConceptSwitch.TestConstraintsInheritance_Derived1_Inherited:
        if (props_TestConstraintsInheritance_Derived1_Inherited == null) {
          ConceptPresentationBuilder cpb = new ConceptPresentationBuilder();
          props_TestConstraintsInheritance_Derived1_Inherited = cpb.create();
        }
        return props_TestConstraintsInheritance_Derived1_Inherited;
      case LanguageConceptSwitch.TestConstraintsInheritance_Derived2_Constrained:
        if (props_TestConstraintsInheritance_Derived2_Constrained == null) {
          ConceptPresentationBuilder cpb = new ConceptPresentationBuilder();
          props_TestConstraintsInheritance_Derived2_Constrained = cpb.create();
        }
        return props_TestConstraintsInheritance_Derived2_Constrained;
      case LanguageConceptSwitch.TestConstraintsInheritance_Derived2_Inherited:
        if (props_TestConstraintsInheritance_Derived2_Inherited == null) {
          ConceptPresentationBuilder cpb = new ConceptPresentationBuilder();
          props_TestConstraintsInheritance_Derived2_Inherited = cpb.create();
        }
        return props_TestConstraintsInheritance_Derived2_Inherited;
      case LanguageConceptSwitch.TestConstraintsInvocation_CanBeAncestorFail:
        if (props_TestConstraintsInvocation_CanBeAncestorFail == null) {
          ConceptPresentationBuilder cpb = new ConceptPresentationBuilder();
          cpb.rawPresentation("TestConstraintsInvocation_CanBeAncestorFail");
          props_TestConstraintsInvocation_CanBeAncestorFail = cpb.create();
        }
        return props_TestConstraintsInvocation_CanBeAncestorFail;
      case LanguageConceptSwitch.TestConstraintsInvocation_CanBeChildFail:
        if (props_TestConstraintsInvocation_CanBeChildFail == null) {
          ConceptPresentationBuilder cpb = new ConceptPresentationBuilder();
          cpb.rawPresentation("TestConstraintsInvocation_CanBeChildFail");
          props_TestConstraintsInvocation_CanBeChildFail = cpb.create();
        }
        return props_TestConstraintsInvocation_CanBeChildFail;
      case LanguageConceptSwitch.TestConstraintsInvocation_CanBeParentFail:
        if (props_TestConstraintsInvocation_CanBeParentFail == null) {
          ConceptPresentationBuilder cpb = new ConceptPresentationBuilder();
          cpb.rawPresentation("TestConstraintsInvocation_CanBeParentFail");
          props_TestConstraintsInvocation_CanBeParentFail = cpb.create();
        }
        return props_TestConstraintsInvocation_CanBeParentFail;
      case LanguageConceptSwitch.TestConstraintsInvocation_Child:
        if (props_TestConstraintsInvocation_Child == null) {
          ConceptPresentationBuilder cpb = new ConceptPresentationBuilder();
          cpb.rawPresentation("TestConstraintsInvocation_Child");
          props_TestConstraintsInvocation_Child = cpb.create();
        }
        return props_TestConstraintsInvocation_Child;
      case LanguageConceptSwitch.TestRefConstraints_BaseReference_Handler:
        if (props_TestRefConstraints_BaseReference_Handler == null) {
          ConceptPresentationBuilder cpb = new ConceptPresentationBuilder();
          props_TestRefConstraints_BaseReference_Handler = cpb.create();
        }
        return props_TestRefConstraints_BaseReference_Handler;
      case LanguageConceptSwitch.TestRefConstraints_BaseReference_Scoping:
        if (props_TestRefConstraints_BaseReference_Scoping == null) {
          ConceptPresentationBuilder cpb = new ConceptPresentationBuilder();
          props_TestRefConstraints_BaseReference_Scoping = cpb.create();
        }
        return props_TestRefConstraints_BaseReference_Scoping;
      case LanguageConceptSwitch.TestRefConstraints_Container:
        if (props_TestRefConstraints_Container == null) {
          ConceptPresentationBuilder cpb = new ConceptPresentationBuilder();
          cpb.rawPresentation("ref constraints test container");
          props_TestRefConstraints_Container = cpb.create();
        }
        return props_TestRefConstraints_Container;
      case LanguageConceptSwitch.TestRefConstraints_SubReference_HandlerSuperHandler:
        if (props_TestRefConstraints_SubReference_HandlerSuperHandler == null) {
          ConceptPresentationBuilder cpb = new ConceptPresentationBuilder();
          cpb.presentationByReference(0x2b80057037584c14L, 0x86fb871266fb9d11L, 0x244a30660588e212L, 0x244a30660588e2f1L, "target", "handler-super-handler ", "");
          props_TestRefConstraints_SubReference_HandlerSuperHandler = cpb.create();
        }
        return props_TestRefConstraints_SubReference_HandlerSuperHandler;
      case LanguageConceptSwitch.TestRefConstraints_SubReference_HandlerSuperScoping:
        if (props_TestRefConstraints_SubReference_HandlerSuperScoping == null) {
          ConceptPresentationBuilder cpb = new ConceptPresentationBuilder();
          cpb.presentationByReference(0x2b80057037584c14L, 0x86fb871266fb9d11L, 0x244a306605641c73L, 0x244a306605641d21L, "target", "handler-super-scoping ", "");
          props_TestRefConstraints_SubReference_HandlerSuperScoping = cpb.create();
        }
        return props_TestRefConstraints_SubReference_HandlerSuperScoping;
      case LanguageConceptSwitch.TestRefConstraints_SubReference_ScopingSuperHandler:
        if (props_TestRefConstraints_SubReference_ScopingSuperHandler == null) {
          ConceptPresentationBuilder cpb = new ConceptPresentationBuilder();
          cpb.presentationByReference(0x2b80057037584c14L, 0x86fb871266fb9d11L, 0x244a30660588e212L, 0x244a30660588e2f1L, "target", "scoping-super-handler ", "");
          props_TestRefConstraints_SubReference_ScopingSuperHandler = cpb.create();
        }
        return props_TestRefConstraints_SubReference_ScopingSuperHandler;
      case LanguageConceptSwitch.TestRefConstraints_SubReference_ScopingSuperScoping:
        if (props_TestRefConstraints_SubReference_ScopingSuperScoping == null) {
          ConceptPresentationBuilder cpb = new ConceptPresentationBuilder();
          cpb.presentationByReference(0x2b80057037584c14L, 0x86fb871266fb9d11L, 0x244a306605641c73L, 0x244a306605641d21L, "target", "scoping-super-scoping ", "");
          props_TestRefConstraints_SubReference_ScopingSuperScoping = cpb.create();
        }
        return props_TestRefConstraints_SubReference_ScopingSuperScoping;
      case LanguageConceptSwitch.TestRefConstraints_Target:
        if (props_TestRefConstraints_Target == null) {
          ConceptPresentationBuilder cpb = new ConceptPresentationBuilder();
          cpb.presentationByName();
          props_TestRefConstraints_Target = cpb.create();
        }
        return props_TestRefConstraints_Target;
    }
    return null;
  }
}
