package jetbrains.mps.kotlin.editor;

/*Generated by MPS */

import jetbrains.mps.nodeEditor.menus.transformation.TransformationMenuBase;
import java.util.Set;
import jetbrains.mps.internal.collections.runtime.SetSequence;
import java.util.HashSet;
import jetbrains.mps.lang.editor.menus.transformation.MenuLocations;
import org.jetbrains.annotations.NotNull;
import java.util.List;
import jetbrains.mps.openapi.editor.menus.transformation.TransformationMenuItem;
import jetbrains.mps.openapi.editor.menus.transformation.TransformationMenuContext;
import jetbrains.mps.lang.editor.menus.EditorMenuDescriptorBase;
import jetbrains.mps.smodel.SNodePointer;
import jetbrains.mps.lang.editor.menus.MenuPart;
import java.util.ArrayList;
import jetbrains.mps.internal.collections.runtime.ListSequence;
import jetbrains.mps.lang.editor.menus.GroupMenuPart;
import jetbrains.mps.lang.smodel.generator.smodelAdapter.SLinkOperations;
import java.util.Arrays;
import jetbrains.mps.lang.editor.menus.transformation.WrapSubstituteMenuTransformationMenuPart;
import org.jetbrains.annotations.Nullable;
import jetbrains.mps.openapi.editor.menus.substitute.SubstituteMenuLookup;
import jetbrains.mps.openapi.editor.EditorContext;
import org.jetbrains.mps.openapi.language.SAbstractConcept;
import jetbrains.mps.lang.editor.menus.substitute.DefaultSubstituteMenuLookup;
import jetbrains.mps.smodel.language.LanguageRegistry;
import jetbrains.mps.lang.editor.menus.transformation.SubstituteMenuItemAsActionItem;
import jetbrains.mps.nodeEditor.cellMenu.SideTransformCompletionActionItem;
import jetbrains.mps.nodeEditor.cellMenu.SubstituteCompletionActionItem;
import org.jetbrains.mps.openapi.model.SNode;
import jetbrains.mps.editor.runtime.menus.SubstituteItemProxy;
import jetbrains.mps.openapi.editor.menus.substitute.SubstituteMenuItem;
import jetbrains.mps.openapi.editor.menus.style.EditorMenuItemStyle;
import jetbrains.mps.editor.runtime.menus.EditorMenuItemModifyingCustomizationContext;
import jetbrains.mps.editor.runtime.completion.CompletionItemInformation;
import jetbrains.mps.editor.runtime.menus.EditorMenuItemCompositeCustomizationContext;
import jetbrains.mps.editor.runtime.completion.CompletionMenuItemCustomizationContext;
import jetbrains.mps.openapi.editor.menus.style.EditorMenuItemCustomizer;
import jetbrains.mps.lang.editor.menus.SingleItemMenuPart;
import jetbrains.mps.logging.Logger;
import jetbrains.mps.openapi.editor.menus.transformation.ActionItemBase;
import jetbrains.mps.openapi.editor.menus.EditorMenuTraceInfo;
import jetbrains.mps.lang.smodel.generator.smodelAdapter.SPropertyOperations;
import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations;
import jetbrains.mps.internal.collections.runtime.CollectionSequence;
import java.util.Objects;
import org.jetbrains.mps.openapi.language.SContainmentLink;
import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory;
import org.jetbrains.mps.openapi.language.SConcept;
import org.jetbrains.mps.openapi.language.SInterfaceConcept;
import org.jetbrains.mps.openapi.language.SProperty;

public class IncompleteDeclaration_TransformationMenu extends TransformationMenuBase {
  private final Set<String> myLocations = SetSequence.fromSetAndArray(new HashSet<String>(), MenuLocations.LEFT_SIDE_TRANSFORM, MenuLocations.RIGHT_SIDE_TRANSFORM, MenuLocations.SUBSTITUTE);
  @Override
  public boolean isApplicableToLocation(@NotNull String location) {
    return SetSequence.fromSet(myLocations).contains(location);
  }

  @NotNull
  @Override
  public List<TransformationMenuItem> createMenuItems(@NotNull TransformationMenuContext context) {
    context.getEditorMenuTrace().pushTraceInfo();
    context.getEditorMenuTrace().setDescriptor(new EditorMenuDescriptorBase("default transformation menu for " + "IncompleteDeclaration", new SNodePointer("r:5e60d3fe-71b1-4c17-b38e-424792223875(jetbrains.mps.kotlin.editor)", "2998782254613118981")));
    try {
      return super.createMenuItems(context);
    } finally {
      context.getEditorMenuTrace().popTraceInfo();
    }
  }

  @Override
  @NotNull
  protected List<MenuPart<TransformationMenuItem, TransformationMenuContext>> getParts(TransformationMenuContext _context) {
    List<MenuPart<TransformationMenuItem, TransformationMenuContext>> result = new ArrayList<MenuPart<TransformationMenuItem, TransformationMenuContext>>();
    if (ListSequence.fromListAndArray(new ArrayList<String>(), MenuLocations.LEFT_SIDE_TRANSFORM, MenuLocations.RIGHT_SIDE_TRANSFORM).contains(_context.getMenuLocation())) {
      result.add(new TMP_Group_jyycyd_a0());
      result.add(new TMP_Action_jyycyd_b0());
      result.add(new TMP_WrapSM_jyycyd_c0());
      result.add(new TMP_Group_jyycyd_d0());
      result.add(new TMP_Group_jyycyd_e0());
    }
    if (ListSequence.fromListAndArray(new ArrayList<String>(), MenuLocations.SUBSTITUTE).contains(_context.getMenuLocation())) {
      result.add(new TMP_Group_jyycyd_a0());
      result.add(new TMP_Action_jyycyd_b0());
      result.add(new TMP_WrapSM_jyycyd_c0());
      result.add(new TMP_Group_jyycyd_d0());
      result.add(new TMP_Group_jyycyd_e0());
    }
    return result;
  }

  public class TMP_Group_jyycyd_a0 extends GroupMenuPart<TransformationMenuItem, TransformationMenuContext> {
    public TMP_Group_jyycyd_a0() {
      super(new EditorMenuDescriptorBase("transformation menu group", new SNodePointer("r:5e60d3fe-71b1-4c17-b38e-424792223875(jetbrains.mps.kotlin.editor)", "2998782254613164203")));
    }
    @Override
    protected boolean isApplicable(TransformationMenuContext _context) {
      return (SLinkOperations.getTarget(_context.getNode(), LINKS.visibility$vnSV) == null);
    }
    @Override
    protected List<MenuPart<TransformationMenuItem, TransformationMenuContext>> getParts() {
      return Arrays.<MenuPart<TransformationMenuItem, TransformationMenuContext>>asList(new TMP_WrapSM_jyycyd_a0a());
    }
    public class TMP_WrapSM_jyycyd_a0a extends WrapSubstituteMenuTransformationMenuPart {
      @NotNull
      @Override
      public List<TransformationMenuItem> createItems(@NotNull TransformationMenuContext context) {
        context.getEditorMenuTrace().pushTraceInfo();
        context.getEditorMenuTrace().setDescriptor(new EditorMenuDescriptorBase("wrap substitute menu " + "default substitute menu for " + "VisibilityModifier", new SNodePointer("r:5e60d3fe-71b1-4c17-b38e-424792223875(jetbrains.mps.kotlin.editor)", "2998782254613173685")));
        try {
          return super.createItems(context);
        } finally {
          context.getEditorMenuTrace().popTraceInfo();
        }
      }

      @Nullable
      @Override
      protected SubstituteMenuLookup getSubstituteMenuLookup(TransformationMenuContext _context) {
        final EditorContext editorContext = _context.getEditorContext();
        SAbstractConcept conceptToFindMenuFor = getConceptToFindMenuFor(_context);
        return new DefaultSubstituteMenuLookup(LanguageRegistry.getInstance(editorContext.getRepository()), conceptToFindMenuFor);
      }
      private SAbstractConcept getConceptToFindMenuFor(TransformationMenuContext _context) {
        return CONCEPTS.VisibilityModifier$c5;
      }


      private class SMIasTMI extends SubstituteMenuItemAsActionItem implements SideTransformCompletionActionItem, SubstituteCompletionActionItem {

        private final SNode targetNode;
        private final TransformationMenuContext _context;
        private final SubstituteItemProxy wrappedItem;

        public SMIasTMI(SubstituteMenuItem substituteItem, SNode targetNode, TransformationMenuContext tctx) {
          super(substituteItem);
          this.targetNode = targetNode;
          this._context = tctx;
          wrappedItem = new SubstituteItemProxy(substituteItem);
        }

        @Override
        public void execute(@NotNull String pattern) {
          SNode createdNode = getSubstituteItem().createNode(pattern);
          SLinkOperations.setTarget(_context.getNode(), LINKS.visibility$vnSV, createdNode);
          _context.getEditorContext().selectWRTFocusPolicy(_context.getNode());
        }

        @Override
        public void customize(String pattern, EditorMenuItemStyle style) {
          super.customize(pattern, style);
          if (targetNode != null) {
            EditorMenuItemModifyingCustomizationContext context = new EditorMenuItemModifyingCustomizationContext(targetNode, null, null, null);
            CompletionItemInformation completionItemInformation = new CompletionItemInformation(null, null, getMatchingText(pattern), getShortDescriptionText(pattern));
            EditorMenuItemCompositeCustomizationContext compositeContext = new EditorMenuItemCompositeCustomizationContext(context, new CompletionMenuItemCustomizationContext(completionItemInformation));
            for (EditorMenuItemCustomizer customizer : _context.getCustomizers()) {
              customizer.customize(style, compositeContext);
            }

          }
        }

      }


      @Override
      protected TransformationMenuItem createTransformationItem(final SNode targetNode, final SubstituteMenuItem item, final TransformationMenuContext _context) {
        return new SMIasTMI(item, targetNode, _context);
      }
    }
  }
  private class TMP_Action_jyycyd_b0 extends SingleItemMenuPart<TransformationMenuItem, TransformationMenuContext> {
    @Nullable
    protected TransformationMenuItem createItem(TransformationMenuContext context) {
      Item item = new Item(context);
      String description;
      try {
        description = "single item: " + item.getLabelText("");
      } catch (Throwable t) {
        Logger.getLogger(getClass()).error("Exception while executing getText of the item " + item, t);
        return null;
      }
      context.getEditorMenuTrace().pushTraceInfo();
      try {
        context.getEditorMenuTrace().setDescriptor(new EditorMenuDescriptorBase(description, new SNodePointer("r:5e60d3fe-71b1-4c17-b38e-424792223875(jetbrains.mps.kotlin.editor)", "2998782254622765986")));
        item.setTraceInfo(context.getEditorMenuTrace().getTraceInfo());
      } finally {
        context.getEditorMenuTrace().popTraceInfo();
      }
      return item;
    }

    private class Item extends ActionItemBase implements SideTransformCompletionActionItem, SubstituteCompletionActionItem {
      private final TransformationMenuContext _context;
      private EditorMenuTraceInfo myEditorMenuTraceInfo;
      private Item(TransformationMenuContext context) {
        _context = context;
      }
      private void setTraceInfo(EditorMenuTraceInfo info) {
        myEditorMenuTraceInfo = info;
      }
      @Nullable
      @Override
      public String getLabelText(String pattern) {
        return "override";
      }

      @Override
      public void execute(@NotNull String pattern) {
        SPropertyOperations.assign(_context.getNode(), PROPS.isOverride$3ngh, true);
        _context.getEditorContext().selectWRTFocusPolicy(_context.getNode());
      }

      @Override
      public boolean canExecute(@NotNull String pattern) {
        return SPropertyOperations.getBoolean(_context.getNode(), PROPS.isOverride$3ngh) && DeclarationHelper.isMember(SNodeOperations.getParent(_context.getNode()));
      }



      @Override
      public EditorMenuTraceInfo getTraceInfo() {
        return myEditorMenuTraceInfo;
      }

      public void customize(String pattern, EditorMenuItemStyle style) {
        EditorMenuItemModifyingCustomizationContext modifyingContext = new EditorMenuItemModifyingCustomizationContext(_context.getNode(), null, null, null);
        SAbstractConcept outputConcept = null;
        EditorMenuItemCompositeCustomizationContext compositeContext = new EditorMenuItemCompositeCustomizationContext(modifyingContext, new CompletionMenuItemCustomizationContext(new CompletionItemInformation(null, outputConcept, getLabelText(pattern), getShortDescriptionText(pattern))));
        for (EditorMenuItemCustomizer customizer : CollectionSequence.fromCollection(_context.getCustomizers())) {
          customizer.customize(style, compositeContext);
        }
      }
    }

  }
  public class TMP_WrapSM_jyycyd_c0 extends WrapSubstituteMenuTransformationMenuPart {
    @NotNull
    @Override
    public List<TransformationMenuItem> createItems(@NotNull TransformationMenuContext context) {
      context.getEditorMenuTrace().pushTraceInfo();
      context.getEditorMenuTrace().setDescriptor(new EditorMenuDescriptorBase("wrap substitute menu " + "default substitute menu for " + "IFunctionModifier", new SNodePointer("r:5e60d3fe-71b1-4c17-b38e-424792223875(jetbrains.mps.kotlin.editor)", "1806979145042949775")));
      try {
        return super.createItems(context);
      } finally {
        context.getEditorMenuTrace().popTraceInfo();
      }
    }

    @Nullable
    @Override
    protected SubstituteMenuLookup getSubstituteMenuLookup(TransformationMenuContext _context) {
      final EditorContext editorContext = _context.getEditorContext();
      SAbstractConcept conceptToFindMenuFor = getConceptToFindMenuFor(_context);
      return new DefaultSubstituteMenuLookup(LanguageRegistry.getInstance(editorContext.getRepository()), conceptToFindMenuFor);
    }
    private SAbstractConcept getConceptToFindMenuFor(TransformationMenuContext _context) {
      return CONCEPTS.IFunctionModifier$Oh;
    }


    private class SMIasTMI extends SubstituteMenuItemAsActionItem implements SideTransformCompletionActionItem, SubstituteCompletionActionItem {

      private final SNode targetNode;
      private final TransformationMenuContext _context;
      private final SubstituteItemProxy wrappedItem;

      public SMIasTMI(SubstituteMenuItem substituteItem, SNode targetNode, TransformationMenuContext tctx) {
        super(substituteItem);
        this.targetNode = targetNode;
        this._context = tctx;
        wrappedItem = new SubstituteItemProxy(substituteItem);
      }

      @Override
      public void execute(@NotNull String pattern) {
        SNode createdNode = getSubstituteItem().createNode(pattern);
        if (ListSequence.fromList(SLinkOperations.getChildren(_context.getNode(), LINKS.funModifiers$vmCQ)).any((it) -> Objects.equals(SNodeOperations.getConcept(it), SNodeOperations.getConcept(createdNode)))) {
          return;
        }
        ListSequence.fromList(SLinkOperations.getChildren(_context.getNode(), LINKS.funModifiers$vmCQ)).addElement(createdNode);
        _context.getEditorContext().selectWRTFocusPolicy(_context.getNode());
      }

      @Override
      public void customize(String pattern, EditorMenuItemStyle style) {
        super.customize(pattern, style);
        if (targetNode != null) {
          EditorMenuItemModifyingCustomizationContext context = new EditorMenuItemModifyingCustomizationContext(targetNode, null, null, null);
          CompletionItemInformation completionItemInformation = new CompletionItemInformation(null, null, getMatchingText(pattern), getShortDescriptionText(pattern));
          EditorMenuItemCompositeCustomizationContext compositeContext = new EditorMenuItemCompositeCustomizationContext(context, new CompletionMenuItemCustomizationContext(completionItemInformation));
          for (EditorMenuItemCustomizer customizer : _context.getCustomizers()) {
            customizer.customize(style, compositeContext);
          }

        }
      }

    }


    @Override
    protected TransformationMenuItem createTransformationItem(final SNode targetNode, final SubstituteMenuItem item, final TransformationMenuContext _context) {
      return new SMIasTMI(item, targetNode, _context);
    }
  }
  public class TMP_Group_jyycyd_d0 extends GroupMenuPart<TransformationMenuItem, TransformationMenuContext> {
    public TMP_Group_jyycyd_d0() {
      super(new EditorMenuDescriptorBase("transformation menu group", new SNodePointer("r:5e60d3fe-71b1-4c17-b38e-424792223875(jetbrains.mps.kotlin.editor)", "1806979145044505716")));
    }
    @Override
    protected boolean isApplicable(TransformationMenuContext _context) {
      return (SLinkOperations.getTarget(_context.getNode(), LINKS.classModifier$gUVP) == null);
    }
    @Override
    protected List<MenuPart<TransformationMenuItem, TransformationMenuContext>> getParts() {
      return Arrays.<MenuPart<TransformationMenuItem, TransformationMenuContext>>asList(new TMP_WrapSM_jyycyd_a3a());
    }
    public class TMP_WrapSM_jyycyd_a3a extends WrapSubstituteMenuTransformationMenuPart {
      @NotNull
      @Override
      public List<TransformationMenuItem> createItems(@NotNull TransformationMenuContext context) {
        context.getEditorMenuTrace().pushTraceInfo();
        context.getEditorMenuTrace().setDescriptor(new EditorMenuDescriptorBase("wrap substitute menu " + "default substitute menu for " + "IClassModifier", new SNodePointer("r:5e60d3fe-71b1-4c17-b38e-424792223875(jetbrains.mps.kotlin.editor)", "1806979145044490176")));
        try {
          return super.createItems(context);
        } finally {
          context.getEditorMenuTrace().popTraceInfo();
        }
      }

      @Nullable
      @Override
      protected SubstituteMenuLookup getSubstituteMenuLookup(TransformationMenuContext _context) {
        final EditorContext editorContext = _context.getEditorContext();
        SAbstractConcept conceptToFindMenuFor = getConceptToFindMenuFor(_context);
        return new DefaultSubstituteMenuLookup(LanguageRegistry.getInstance(editorContext.getRepository()), conceptToFindMenuFor);
      }
      private SAbstractConcept getConceptToFindMenuFor(TransformationMenuContext _context) {
        return CONCEPTS.IClassModifier$um;
      }


      private class SMIasTMI extends SubstituteMenuItemAsActionItem implements SideTransformCompletionActionItem, SubstituteCompletionActionItem {

        private final SNode targetNode;
        private final TransformationMenuContext _context;
        private final SubstituteItemProxy wrappedItem;

        public SMIasTMI(SubstituteMenuItem substituteItem, SNode targetNode, TransformationMenuContext tctx) {
          super(substituteItem);
          this.targetNode = targetNode;
          this._context = tctx;
          wrappedItem = new SubstituteItemProxy(substituteItem);
        }

        @Override
        public void execute(@NotNull String pattern) {
          SNode createdNode = getSubstituteItem().createNode(pattern);
          SLinkOperations.setTarget(_context.getNode(), LINKS.classModifier$gUVP, createdNode);
          _context.getEditorContext().selectWRTFocusPolicy(_context.getNode());
        }

        @Override
        public void customize(String pattern, EditorMenuItemStyle style) {
          super.customize(pattern, style);
          if (targetNode != null) {
            EditorMenuItemModifyingCustomizationContext context = new EditorMenuItemModifyingCustomizationContext(targetNode, null, null, null);
            CompletionItemInformation completionItemInformation = new CompletionItemInformation(null, null, getMatchingText(pattern), getShortDescriptionText(pattern));
            EditorMenuItemCompositeCustomizationContext compositeContext = new EditorMenuItemCompositeCustomizationContext(context, new CompletionMenuItemCustomizationContext(completionItemInformation));
            for (EditorMenuItemCustomizer customizer : _context.getCustomizers()) {
              customizer.customize(style, compositeContext);
            }

          }
        }

      }


      @Override
      protected TransformationMenuItem createTransformationItem(final SNode targetNode, final SubstituteMenuItem item, final TransformationMenuContext _context) {
        return new SMIasTMI(item, targetNode, _context);
      }
    }
  }
  public class TMP_Group_jyycyd_e0 extends GroupMenuPart<TransformationMenuItem, TransformationMenuContext> {
    public TMP_Group_jyycyd_e0() {
      super(new EditorMenuDescriptorBase("transformation menu group", new SNodePointer("r:5e60d3fe-71b1-4c17-b38e-424792223875(jetbrains.mps.kotlin.editor)", "2998782254613208769")));
    }
    @Override
    protected boolean isApplicable(TransformationMenuContext _context) {
      return (SLinkOperations.getTarget(_context.getNode(), LINKS.inheritance$TFvr) == null);
    }
    @Override
    protected List<MenuPart<TransformationMenuItem, TransformationMenuContext>> getParts() {
      return Arrays.<MenuPart<TransformationMenuItem, TransformationMenuContext>>asList(new TMP_WrapSM_jyycyd_a4a());
    }
    public class TMP_WrapSM_jyycyd_a4a extends WrapSubstituteMenuTransformationMenuPart {
      @NotNull
      @Override
      public List<TransformationMenuItem> createItems(@NotNull TransformationMenuContext context) {
        context.getEditorMenuTrace().pushTraceInfo();
        context.getEditorMenuTrace().setDescriptor(new EditorMenuDescriptorBase("wrap substitute menu " + "default substitute menu for " + "IInheritanceModifier", new SNodePointer("r:5e60d3fe-71b1-4c17-b38e-424792223875(jetbrains.mps.kotlin.editor)", "2998782254613217672")));
        try {
          return super.createItems(context);
        } finally {
          context.getEditorMenuTrace().popTraceInfo();
        }
      }

      @Nullable
      @Override
      protected SubstituteMenuLookup getSubstituteMenuLookup(TransformationMenuContext _context) {
        final EditorContext editorContext = _context.getEditorContext();
        SAbstractConcept conceptToFindMenuFor = getConceptToFindMenuFor(_context);
        return new DefaultSubstituteMenuLookup(LanguageRegistry.getInstance(editorContext.getRepository()), conceptToFindMenuFor);
      }
      private SAbstractConcept getConceptToFindMenuFor(TransformationMenuContext _context) {
        return CONCEPTS.IInheritanceModifier$G7;
      }


      private class SMIasTMI extends SubstituteMenuItemAsActionItem implements SideTransformCompletionActionItem, SubstituteCompletionActionItem {

        private final SNode targetNode;
        private final TransformationMenuContext _context;
        private final SubstituteItemProxy wrappedItem;

        public SMIasTMI(SubstituteMenuItem substituteItem, SNode targetNode, TransformationMenuContext tctx) {
          super(substituteItem);
          this.targetNode = targetNode;
          this._context = tctx;
          wrappedItem = new SubstituteItemProxy(substituteItem);
        }

        @Override
        public void execute(@NotNull String pattern) {
          SNode createdNode = getSubstituteItem().createNode(pattern);
          SLinkOperations.setTarget(_context.getNode(), LINKS.inheritance$TFvr, createdNode);
          _context.getEditorContext().selectWRTFocusPolicy(_context.getNode());
        }

        @Override
        public void customize(String pattern, EditorMenuItemStyle style) {
          super.customize(pattern, style);
          if (targetNode != null) {
            EditorMenuItemModifyingCustomizationContext context = new EditorMenuItemModifyingCustomizationContext(targetNode, null, null, null);
            CompletionItemInformation completionItemInformation = new CompletionItemInformation(null, null, getMatchingText(pattern), getShortDescriptionText(pattern));
            EditorMenuItemCompositeCustomizationContext compositeContext = new EditorMenuItemCompositeCustomizationContext(context, new CompletionMenuItemCustomizationContext(completionItemInformation));
            for (EditorMenuItemCustomizer customizer : _context.getCustomizers()) {
              customizer.customize(style, compositeContext);
            }

          }
        }

      }


      @Override
      protected TransformationMenuItem createTransformationItem(final SNode targetNode, final SubstituteMenuItem item, final TransformationMenuContext _context) {
        return new SMIasTMI(item, targetNode, _context);
      }
    }
  }

  private static final class LINKS {
    /*package*/ static final SContainmentLink visibility$vnSV = MetaAdapterFactory.getContainmentLink(0x6b3888c1980244d8L, 0x8baff8e6c33ed689L, 0x631027d1c4c4e03fL, 0x631027d1c4c4e040L, "visibility");
    /*package*/ static final SContainmentLink funModifiers$vmCQ = MetaAdapterFactory.getContainmentLink(0x6b3888c1980244d8L, 0x8baff8e6c33ed689L, 0x299dd09284f401caL, 0x1913adf568d1fd3dL, "funModifiers");
    /*package*/ static final SContainmentLink classModifier$gUVP = MetaAdapterFactory.getContainmentLink(0x6b3888c1980244d8L, 0x8baff8e6c33ed689L, 0x299dd09284f401caL, 0x1913adf568e9b69cL, "classModifier");
    /*package*/ static final SContainmentLink inheritance$TFvr = MetaAdapterFactory.getContainmentLink(0x6b3888c1980244d8L, 0x8baff8e6c33ed689L, 0x537372687dd3bcdaL, 0x537372687dd3bcdbL, "inheritance");
  }

  private static final class CONCEPTS {
    /*package*/ static final SConcept VisibilityModifier$c5 = MetaAdapterFactory.getConcept(0x6b3888c1980244d8L, 0x8baff8e6c33ed689L, 0x43c4f08bd9cc2f8cL, "jetbrains.mps.kotlin.structure.VisibilityModifier");
    /*package*/ static final SInterfaceConcept IFunctionModifier$Oh = MetaAdapterFactory.getInterfaceConcept(0x6b3888c1980244d8L, 0x8baff8e6c33ed689L, 0x28bef6d7551af3beL, "jetbrains.mps.kotlin.structure.IFunctionModifier");
    /*package*/ static final SInterfaceConcept IClassModifier$um = MetaAdapterFactory.getInterfaceConcept(0x6b3888c1980244d8L, 0x8baff8e6c33ed689L, 0x28bef6d7551af406L, "jetbrains.mps.kotlin.structure.IClassModifier");
    /*package*/ static final SInterfaceConcept IInheritanceModifier$G7 = MetaAdapterFactory.getInterfaceConcept(0x6b3888c1980244d8L, 0x8baff8e6c33ed689L, 0x28bef6d7551af4f1L, "jetbrains.mps.kotlin.structure.IInheritanceModifier");
  }

  private static final class PROPS {
    /*package*/ static final SProperty isOverride$3ngh = MetaAdapterFactory.getProperty(0x6b3888c1980244d8L, 0x8baff8e6c33ed689L, 0x299dd09284f401caL, 0x299dd0928588bc10L, "isOverride");
  }
}
