public final class DequeType__BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x8388864671ce4f1cL,
          0x9c53c54016f6ad4fL,
          0x2e99e9ab97de7711L,
          "jetbrains.mps.baseLanguage.collections.structure.DequeType");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<List<SNode>> getAbstractCreators_id6A07P3f4z36 =
      new SMethodBuilder<List<SNode>>(
              new SJavaCompoundTypeImpl((Class<List<SNode>>) ((Class) Object.class)))
          .name("getAbstractCreators")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("6A07P3f4z36")
          .registry(REGISTRY)
          .build(SMethodBuilder.createJavaParameter((Class<SModel>) ((Class) Object.class), ""));
  public static final SMethod<Boolean> canBeCoerced_id5uUZ$FUUb6B =
      new SMethodBuilder<Boolean>(new SJavaCompoundTypeImpl(Boolean.TYPE))
          .name("canBeCoerced")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("5uUZ$FUUb6B")
          .registry(REGISTRY)
          .build(SMethodBuilder.createJavaParameter(String.class, ""));

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(getAbstractCreators_id6A07P3f4z36, canBeCoerced_id5uUZ$FUUb6B);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  /*package*/ static List<SNode> getAbstractCreators_id6A07P3f4z36(
      @NotNull SNode __thisNode__, SModel targetModel) {
    List<SNode> res = new ArrayList<SNode>();
    ListSequence.fromList(res)
        .addElement(
            _quotation_createNode_kzauu3_a0a1a0(
                SLinkOperations.getTarget(
                    __thisNode__,
                    MetaAdapterFactory.getContainmentLink(
                        0x8388864671ce4f1cL,
                        0x9c53c54016f6ad4fL,
                        0x4eec26fcbaf8c39bL,
                        0x4eec26fcbaf8c39cL,
                        "elementType"))));
    ListSequence.fromList(res)
        .addSequence(
            Sequence.fromIterable(
                CustomContainersUtil.containerCreators(targetModel, __thisNode__)));
    return res;
  }
  /*package*/ static boolean canBeCoerced_id5uUZ$FUUb6B(
      @NotNull SNode __thisNode__, String conceptFqName) {
    if ("jetbrains.mps.baseLanguage.collections.structure.LinkedListType".equals(conceptFqName)
        || "jetbrains.mps.baseLanguage.collections.structure.ListType".equals(conceptFqName)
        || "jetbrains.mps.baseLanguage.collections.structure.StackType".equals(conceptFqName)
        || "jetbrains.mps.baseLanguage.collections.structure.QueueType".equals(conceptFqName)
        || "jetbrains.mps.baseLanguage.collections.structure.SetType".equals(conceptFqName)
        || "jetbrains.mps.baseLanguage.collections.structure.SortedSetType".equals(conceptFqName)
        || "jetbrains.mps.baseLanguage.collections.structure.MapType".equals(conceptFqName)
        || "jetbrains.mps.baseLanguage.collections.structure.SortedMapType".equals(conceptFqName)) {
      return false;
    }
    return true;
  }

  /*package*/ DequeType__BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @Nullable Object[] parameters) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) ((List<SNode>) getAbstractCreators_id6A07P3f4z36(node, (SModel) parameters[0]));
      case 1:
        return (T) ((Boolean) canBeCoerced_id5uUZ$FUUb6B(node, (String) parameters[0]));
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept,
      @NotNull SMethod<T> method,
      @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }

  private static SNode _quotation_createNode_kzauu3_a0a1a0(Object parameter_1) {
    PersistenceFacade facade = PersistenceFacade.getInstance();
    SNode quotedNode_2 = null;
    SNode quotedNode_3 = null;
    quotedNode_2 =
        SModelUtil_new.instantiateConceptDeclaration(
            MetaAdapterFactory.getConcept(
                0x8388864671ce4f1cL,
                0x9c53c54016f6ad4fL,
                0x11daf69a138L,
                "jetbrains.mps.baseLanguage.collections.structure.LinkedListCreator"),
            null,
            null,
            false);
    quotedNode_3 = (SNode) parameter_1;
    if (quotedNode_3 != null) {
      quotedNode_2.addChild(
          MetaAdapterFactory.getContainmentLink(
              0x8388864671ce4f1cL,
              0x9c53c54016f6ad4fL,
              0x1202df1ada0L,
              0x1202df24e9fL,
              "elementType"),
          HUtil.copyIfNecessary(quotedNode_3));
    }
    return quotedNode_2;
  }
}
public final class Shape_BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x16bafbb4c6cd4cc5L,
          0x83327c6de8729b3fL,
          0x51dcaa29974fc161L,
          "jetbrains.mps.samples.Shapes.structure.Shape");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<Void> drawShape_idW6XMzE_hbz =
      new SMethodBuilder<Void>(new SJavaCompoundTypeImpl(Void.class))
          .name("drawShape")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("W6XMzE_hbz")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses(Graphics.class)));
  public static final SMethod<Void> drawShapeAt_id3u6SZi0POQS =
      new SMethodBuilder<Void>(new SJavaCompoundTypeImpl(Void.class))
          .name("drawShapeAt")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("3u6SZi0POQS")
          .registry(REGISTRY)
          .build(
              SParameterImpl.fromList(
                  SJavaCompoundTypeImpl.fromClasses(Graphics.class, Integer.TYPE, Integer.TYPE)));

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(drawShape_idW6XMzE_hbz, drawShapeAt_id3u6SZi0POQS);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  private static void drawShape_idW6XMzE_hbz(@NotNull SNode __thisNode__, Graphics graphics) {
    graphics.setColor(
        ColorReference_BehaviorDescriptor.findColor_id1Os2kBLuoy8.invoke(
            SLinkOperations.getTarget(
                __thisNode__,
                MetaAdapterFactory.getContainmentLink(
                    0x16bafbb4c6cd4cc5L,
                    0x83327c6de8729b3fL,
                    0x51dcaa29974fc161L,
                    0x3a2b0182df24928cL,
                    "color"))));
  }

  private static void drawShapeAt_id3u6SZi0POQS(
      @NotNull SNode __thisNode__, Graphics graphics, int x, int y) {
    graphics.setColor(
        ColorReference_BehaviorDescriptor.findColor_id1Os2kBLuoy8.invoke(
            SLinkOperations.getTarget(
                __thisNode__,
                MetaAdapterFactory.getContainmentLink(
                    0x16bafbb4c6cd4cc5L,
                    0x83327c6de8729b3fL,
                    0x51dcaa29974fc161L,
                    0x3a2b0182df24928cL,
                    "color"))));
  }

  /*package*/ Shape_BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @NotNull Object[] array) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        drawShape_idW6XMzE_hbz(node, (Graphics) parameters[0]);
        return null;
      case 1:
        drawShapeAt_id3u6SZi0POQS(
            node, (Graphics) parameters[0], (Integer) parameters[1], (Integer) parameters[2]);
        return null;
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }
}
public final class CurrentStockPrice__BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x662a9f2b58024d16L,
          0x955872c65c7a681eL,
          0x3786e3f4808999c3L,
          "org.jetbrains.mps.samples.Money.structure.CurrentStockPrice");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<Money> getCurrentPrice_id3u6SZi0yq4L =
      new SMethodBuilder<Money>(new SJavaCompoundTypeImpl(Money.class))
          .name("getCurrentPrice")
          .modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("3u6SZi0yq4L")
          .registry(REGISTRY)
          .build();

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(getCurrentPrice_id3u6SZi0yq4L);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  /*package*/ static Money getCurrentPrice_id3u6SZi0yq4L(@NotNull SNode __thisNode__) {
    if ((SLinkOperations.getTarget(
            __thisNode__,
            MetaAdapterFactory.getContainmentLink(
                0x662a9f2b58024d16L,
                0x955872c65c7a681eL,
                0x3786e3f4808999c3L,
                0x3786e3f480b0926aL,
                "symbol"))
        == null)) {
      return new Money(BigDecimal.ZERO, "USD");
    }
    Money currentPrice =
        StockPriceDownloader.getInstance()
            .getCurrentPrice(
                SPropertyOperations.getString(
                    SLinkOperations.getTarget(
                        __thisNode__,
                        MetaAdapterFactory.getContainmentLink(
                            0x662a9f2b58024d16L,
                            0x955872c65c7a681eL,
                            0x3786e3f4808999c3L,
                            0x3786e3f480b0926aL,
                            "symbol")),
                    MetaAdapterFactory.getProperty(
                        0x662a9f2b58024d16L,
                        0x955872c65c7a681eL,
                        0x3786e3f480a9b18aL,
                        0x3786e3f480afac5bL,
                        "symbol")));
    if (currentPrice == null) {
      return new Money(BigDecimal.ZERO, "USD");
    }
    return currentPrice;
  }

  /*package*/ CurrentStockPrice__BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @Nullable Object[] parameters) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) ((Money) getCurrentPrice_id3u6SZi0yq4L(node));
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept,
      @NotNull SMethod<T> method,
      @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }
}
public final class QueryFunction_RemoveBy_Condition__BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0xaee9cad2acd44608L,
          0xaef20004f6a1cdbdL,
          0x11223572c26L,
          "jetbrains.mps.lang.actions.structure.QueryFunction_RemoveBy_Condition");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<Boolean> usesParameterObjectFor_idhEwIGRw =
      new SMethodBuilder<Boolean>(new SJavaCompoundTypeImpl(Boolean.TYPE))
          .name("usesParameterObjectFor")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("hEwIGRw")
          .registry(REGISTRY)
          .build(SMethodBuilder.createJavaParameter((Class<SNode>) ((Class) Object.class), ""));
  public static final SMethod<List<SNode>> getParameters_idhEwIGRM =
      new SMethodBuilder<List<SNode>>(
              new SJavaCompoundTypeImpl((Class<List<SNode>>) ((Class) Object.class)))
          .name("getParameters")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("hEwIGRM")
          .registry(REGISTRY)
          .build();
  public static final SMethod<SNode> getExpectedReturnType_idhEwIGRD =
      new SMethodBuilder<SNode>(new SJavaCompoundTypeImpl((Class<SNode>) ((Class) Object.class)))
          .name("getExpectedReturnType")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("hEwIGRD")
          .registry(REGISTRY)
          .build();

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(
          usesParameterObjectFor_idhEwIGRw,
          getParameters_idhEwIGRM,
          getExpectedReturnType_idhEwIGRD);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  /*package*/ static boolean usesParameterObjectFor_idhEwIGRw(
      @NotNull SNode __thisNode__, SNode parameter) {
    return !(SNodeOperations.isInstanceOf(
        parameter,
        MetaAdapterFactory.getConcept(
            0xaee9cad2acd44608L,
            0xaef20004f6a1cdbdL,
            0x112235845abL,
            "jetbrains.mps.lang.actions.structure.ConceptFunctionParameter_concept")));
  }
  /*package*/ static List<SNode> getParameters_idhEwIGRM(@NotNull SNode __thisNode__) {
    List<SNode> result = ListSequence.fromList(new ArrayList<SNode>());
    ListSequence.fromList(result)
        .addElement(
            MetaAdapterFactory.getConcept(
                    0xaee9cad2acd44608L,
                    0xaef20004f6a1cdbdL,
                    0x10ccb7e17b2L,
                    "jetbrains.mps.lang.actions.structure.ConceptFunctionParameter_parentNode")
                .getDeclarationNode());
    ListSequence.fromList(result)
        .addElement(
            MetaAdapterFactory.getConcept(
                    0xaee9cad2acd44608L,
                    0xaef20004f6a1cdbdL,
                    0x1122c8bef38L,
                    "jetbrains.mps.lang.actions.structure.ConceptFunctionParameter_currentTargetNode")
                .getDeclarationNode());
    ListSequence.fromList(result)
        .addElement(
            MetaAdapterFactory.getConcept(
                    0xaee9cad2acd44608L,
                    0xaef20004f6a1cdbdL,
                    0x112235845abL,
                    "jetbrains.mps.lang.actions.structure.ConceptFunctionParameter_concept")
                .getDeclarationNode());
    ListSequence.fromList(result)
        .addElement(
            MetaAdapterFactory.getConcept(
                    0xaee9cad2acd44608L,
                    0xaef20004f6a1cdbdL,
                    0x112387cf896L,
                    "jetbrains.mps.lang.actions.structure.ConceptFunctionParameter_childConcept")
                .getDeclarationNode());
    ListSequence.fromList(result)
        .addElement(
            MetaAdapterFactory.getConcept(
                    0x13744753c81f424aL,
                    0x9c1bcf8943bf4e86L,
                    0x10e761b3745L,
                    "jetbrains.mps.lang.sharedConcepts.structure.ConceptFunctionParameter_model")
                .getDeclarationNode());
    ListSequence.fromList(result)
        .addElement(
            MetaAdapterFactory.getConcept(
                    0x13744753c81f424aL,
                    0x9c1bcf8943bf4e86L,
                    0x10e761c927aL,
                    "jetbrains.mps.lang.sharedConcepts.structure.ConceptFunctionParameter_operationContext")
                .getDeclarationNode());
    return result;
  }
  /*package*/ static SNode getExpectedReturnType_idhEwIGRD(@NotNull SNode __thisNode__) {
    return _quotation_createNode_ubklel_a0a2();
  }

  /*package*/ QueryFunction_RemoveBy_Condition__BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @Nullable Object[] parameters) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) ((Boolean) usesParameterObjectFor_idhEwIGRw(node, (SNode) parameters[0]));
      case 1:
        return (T) ((List<SNode>) getParameters_idhEwIGRM(node));
      case 2:
        return (T) ((SNode) getExpectedReturnType_idhEwIGRD(node));
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept,
      @NotNull SMethod<T> method,
      @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }

  private static SNode _quotation_createNode_ubklel_a0a2() {
    PersistenceFacade facade = PersistenceFacade.getInstance();
    SNode quotedNode_1 = null;
    quotedNode_1 =
        SModelUtil_new.instantiateConceptDeclaration(
            MetaAdapterFactory.getConcept(
                0xf3061a5392264cc5L,
                0xa443f952ceaf5816L,
                0xf940d6513eL,
                "jetbrains.mps.baseLanguage.structure.BooleanType"),
            null,
            null,
            false);
    return quotedNode_1;
  }
}
public final class XMLSAXChildRule_BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0xdcb5a83a19a844ffL,
          0xa4cbfc7d324ecc63L,
          0x1f6c736337b5e2d8L,
          "jetbrains.mps.core.xml.sax.structure.XMLSAXChildRule");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<String> getTagName_id1XGsQcRHuf0 =
      new SMethodBuilder<String>(new SJavaCompoundTypeImpl(String.class))
          .name("getTagName")
          .modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("1XGsQcRHuf0")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<Scope> getArgumentsScope_id460OzqriLdX =
      new SMethodBuilder<Scope>(new SJavaCompoundTypeImpl(Scope.class))
          .name("getArgumentsScope")
          .modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("460OzqriLdX")
          .registry(REGISTRY)
          .build(
              SParameterImpl.fromList(
                  SJavaCompoundTypeImpl.fromClasses((Class<SNode>) ((Class) Object.class))));
  public static final SMethod<Scope> getScope_id3fifI_xCJOQ =
      new SMethodBuilder<Scope>(new SJavaCompoundTypeImpl(Scope.class))
          .name("getScope")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("3fifI_xCJOQ")
          .registry(REGISTRY)
          .build(
              SParameterImpl.fromList(
                  SJavaCompoundTypeImpl.fromClasses(
                      (Class<SNode>) ((Class) Object.class),
                      (Class<SNode>) ((Class) Object.class))));
  public static final SMethod<Scope> getScope_id6GEzh_Hz_wK =
      new SMethodBuilder<Scope>(new SJavaCompoundTypeImpl(Scope.class))
          .name("getScope")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("6GEzh_Hz_wK")
          .registry(REGISTRY)
          .build(
              SParameterImpl.fromList(
                  SJavaCompoundTypeImpl.fromClasses(
                      (Class<SNode>) ((Class) Object.class), String.class, Integer.TYPE)));

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(
          getTagName_id1XGsQcRHuf0,
          getArgumentsScope_id460OzqriLdX,
          getScope_id3fifI_xCJOQ,
          getScope_id6GEzh_Hz_wK);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  private static String getTagName_id1XGsQcRHuf0(@NotNull SNode __thisNode__) {
    if ((SLinkOperations.getTarget(
                __thisNode__,
                MetaAdapterFactory.getReferenceLink(
                    0xdcb5a83a19a844ffL,
                    0xa4cbfc7d324ecc63L,
                    0x1f6c736337b5e2d8L,
                    0x1f6c736337b5e2dcL,
                    "rule"))
            != null)
        && isNotEmptyString(
            SPropertyOperations.getString(
                SLinkOperations.getTarget(
                    __thisNode__,
                    MetaAdapterFactory.getReferenceLink(
                        0xdcb5a83a19a844ffL,
                        0xa4cbfc7d324ecc63L,
                        0x1f6c736337b5e2d8L,
                        0x1f6c736337b5e2dcL,
                        "rule")),
                MetaAdapterFactory.getProperty(
                    0xdcb5a83a19a844ffL,
                    0xa4cbfc7d324ecc63L,
                    0x1f6c736337b5e2f2L,
                    0x1f6c736337b5e2f9L,
                    "tagName")))
        && (SPropertyOperations.getBoolean(
                    __thisNode__,
                    MetaAdapterFactory.getProperty(
                        0xdcb5a83a19a844ffL,
                        0xa4cbfc7d324ecc63L,
                        0x1f6c736337b5e2d8L,
                        0x1f6c736337b5e2dbL,
                        "overrideTag"))
                == false
            || isEmptyString(
                SPropertyOperations.getString(
                    __thisNode__,
                    MetaAdapterFactory.getProperty(
                        0xdcb5a83a19a844ffL,
                        0xa4cbfc7d324ecc63L,
                        0x1f6c736337b5e2d8L,
                        0x1f6c736337b5e2daL,
                        "tagName"))))) {
      return SPropertyOperations.getString(
          SLinkOperations.getTarget(
              __thisNode__,
              MetaAdapterFactory.getReferenceLink(
                  0xdcb5a83a19a844ffL,
                  0xa4cbfc7d324ecc63L,
                  0x1f6c736337b5e2d8L,
                  0x1f6c736337b5e2dcL,
                  "rule")),
          MetaAdapterFactory.getProperty(
              0xdcb5a83a19a844ffL,
              0xa4cbfc7d324ecc63L,
              0x1f6c736337b5e2f2L,
              0x1f6c736337b5e2f9L,
              "tagName"));
    }
    return SPropertyOperations.getString(
        __thisNode__,
        MetaAdapterFactory.getProperty(
            0xdcb5a83a19a844ffL,
            0xa4cbfc7d324ecc63L,
            0x1f6c736337b5e2d8L,
            0x1f6c736337b5e2daL,
            "tagName"));
  }

  private static Scope getArgumentsScope_id460OzqriLdX(@NotNull SNode __thisNode__, SNode kind) {
    {
      SAbstractConcept cncpt = SNodeOperations.asSConcept((kind));
      if (SConceptOperations.isSubConceptOf(
          SNodeOperations.asSConcept(cncpt),
          MetaAdapterFactory.getConcept(
              0xf3061a5392264cc5L,
              0xa443f952ceaf5816L,
              0xf8c37a7f6eL,
              "jetbrains.mps.baseLanguage.structure.VariableDeclaration"))) {
        return new EmptyScope();
      }
      if (SConceptOperations.isSubConceptOf(
          SNodeOperations.asSConcept(cncpt),
          MetaAdapterFactory.getConcept(
              0xdcb5a83a19a844ffL,
              0xa4cbfc7d324ecc63L,
              0x1f6c736337b5e2cbL,
              "jetbrains.mps.core.xml.sax.structure.XMLSAXAttributeRule"))) {
        return SimpleRoleScope.forNamedElements(
            SNodeOperations.getNodeAncestor(
                __thisNode__,
                MetaAdapterFactory.getConcept(
                    0xdcb5a83a19a844ffL,
                    0xa4cbfc7d324ecc63L,
                    0x1f6c736337b5e2f2L,
                    "jetbrains.mps.core.xml.sax.structure.XMLSAXNodeRule"),
                false,
                false),
            MetaAdapterFactory.getContainmentLink(
                0xdcb5a83a19a844ffL,
                0xa4cbfc7d324ecc63L,
                0x1f6c736337b5e2f2L,
                0x1f6c736337b5e2f4L,
                "attrs"));
      }
    }
    return null;
  }

  private static Scope getScope_id3fifI_xCJOQ(
      @NotNull SNode __thisNode__, SNode kind, SNode child) {
    if (child != null && child.getRoleInParent().equals("actualArgument")) {
      Scope argumentsScope =
          XMLSAXChildRule_BehaviorDescriptor.getArgumentsScope_id460OzqriLdX.invoke(
              __thisNode__, kind);
      if (argumentsScope != null) {
        return argumentsScope;
      }
    }
    if (child
        == SLinkOperations.getTarget(
            __thisNode__,
            MetaAdapterFactory.getContainmentLink(
                0xdcb5a83a19a844ffL,
                0xa4cbfc7d324ecc63L,
                0x1f6c736337b5e2d8L,
                0x4180d2369beda765L,
                "condition"))) {
      {
        SAbstractConcept cncpt = SNodeOperations.asSConcept((kind));
        if (SConceptOperations.isSubConceptOf(
            SNodeOperations.asSConcept(cncpt),
            MetaAdapterFactory.getConcept(
                0xdcb5a83a19a844ffL,
                0xa4cbfc7d324ecc63L,
                0x1f6c736337b5e2cbL,
                "jetbrains.mps.core.xml.sax.structure.XMLSAXAttributeRule"))) {
          return SimpleRoleScope.forNamedElements(
              SLinkOperations.getTarget(
                  __thisNode__,
                  MetaAdapterFactory.getReferenceLink(
                      0xdcb5a83a19a844ffL,
                      0xa4cbfc7d324ecc63L,
                      0x1f6c736337b5e2d8L,
                      0x1f6c736337b5e2dcL,
                      "rule")),
              MetaAdapterFactory.getContainmentLink(
                  0xdcb5a83a19a844ffL,
                  0xa4cbfc7d324ecc63L,
                  0x1f6c736337b5e2f2L,
                  0x1f6c736337b5e2f4L,
                  "attrs"));
        }
      }
    }
    return ScopeProvider_BehaviorDescriptor.getScope_id3fifI_xCJOQ.invokeSpecial(
        __thisNode__, kind, child);
  }

  private static Scope getScope_id6GEzh_Hz_wK(
      @NotNull SNode __thisNode__, SNode kind, String role, int index) {
    if (role.equals("actualArgument")) {
      Scope argumentsScope =
          XMLSAXChildRule_BehaviorDescriptor.getArgumentsScope_id460OzqriLdX.invoke(
              __thisNode__, kind);
      if (argumentsScope != null) {
        return argumentsScope;
      }
    }
    return ScopeProvider_BehaviorDescriptor.getScope_id6GEzh_Hz_wK.invokeSpecial(
        __thisNode__, kind, role, index);
  }

  /*package*/ XMLSAXChildRule_BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @NotNull Object[] array) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) getTagName_id1XGsQcRHuf0(node);
      case 1:
        return (T) getArgumentsScope_id460OzqriLdX(node, (SNode) parameters[0]);
      case 2:
        return (T) getScope_id3fifI_xCJOQ(node, (SNode) parameters[0], (SNode) parameters[1]);
      case 3:
        return (T)
            getScope_id6GEzh_Hz_wK(
                node, (SNode) parameters[0], (String) parameters[1], (Integer) parameters[2]);
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }

  private static boolean isNotEmptyString(String str) {
    return str != null && str.length() > 0;
  }

  private static boolean isEmptyString(String str) {
    return str == null || str.length() == 0;
  }
}
public final class StringPropertyInstance_BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0xc7d5b9dda05f4be2L,
          0xbc73f2e16994cc67L,
          0x59e9926e84100d04L,
          "jetbrains.mps.baseLanguage.lightweightdsl.structure.StringPropertyInstance");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<SNode> getValueExpression_id3m06Jgserfw =
      new SMethodBuilder<SNode>(new SJavaCompoundTypeImpl((Class<SNode>) ((Class) Object.class)))
          .name("getValueExpression")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("3m06Jgserfw")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(getValueExpression_id3m06Jgserfw);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  private static SNode getValueExpression_id3m06Jgserfw(@NotNull SNode __thisNode__) {
    return _quotation_createNode_2ank17_a0a0(
        SPropertyOperations.getString(
            __thisNode__,
            MetaAdapterFactory.getProperty(
                0xc7d5b9dda05f4be2L,
                0xbc73f2e16994cc67L,
                0x59e9926e84100d04L,
                0x59e9926e84100d05L,
                "value")));
  }

  /*package*/ StringPropertyInstance_BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @NotNull Object[] array) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) getValueExpression_id3m06Jgserfw(node);
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }

  private static SNode _quotation_createNode_2ank17_a0a0(Object parameter_1) {
    PersistenceFacade facade = PersistenceFacade.getInstance();
    SNode quotedNode_2 = null;
    quotedNode_2 =
        SModelUtil_new.instantiateConceptDeclaration(
            MetaAdapterFactory.getConcept(
                0xf3061a5392264cc5L,
                0xa443f952ceaf5816L,
                0xf93d565d10L,
                "jetbrains.mps.baseLanguage.structure.StringLiteral"),
            null,
            null,
            false);
    SNodeAccessUtil.setProperty(
        quotedNode_2,
        MetaAdapterFactory.getProperty(
            0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf93d565d10L, 0xf93d565d11L, "value"),
        (String) parameter_1);
    return quotedNode_2;
  }
}
public final class CellKeyMapDeclaration__BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x18bc659203a64e29L,
          0xa83a7ff23bde13baL,
          0xfbc216b31bL,
          "jetbrains.mps.lang.editor.structure.CellKeyMapDeclaration");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<SNode> getBaseConcept_id2hxg_BDjKM8 =
      new SMethodBuilder<SNode>(new SJavaCompoundTypeImpl((Class<SNode>) ((Class) Object.class)))
          .name("getBaseConcept")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("2hxg_BDjKM8")
          .registry(REGISTRY)
          .build();
  public static final SMethod<Void> setBaseConcept_id5r_35Ihc58c =
      new SMethodBuilder<Void>(new SJavaCompoundTypeImpl(Void.class))
          .name("setBaseConcept")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("5r_35Ihc58c")
          .registry(REGISTRY)
          .build(SMethodBuilder.createJavaParameter((Class<SNode>) ((Class) Object.class), ""));

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(getBaseConcept_id2hxg_BDjKM8, setBaseConcept_id5r_35Ihc58c);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  /*package*/ static SNode getBaseConcept_id2hxg_BDjKM8(@NotNull SNode __thisNode__) {
    return SLinkOperations.getTarget(
        __thisNode__,
        MetaAdapterFactory.getReferenceLink(
            0x18bc659203a64e29L,
            0xa83a7ff23bde13baL,
            0xfbc216b31bL,
            0x1094c452c15L,
            "applicableConcept"));
  }
  /*package*/ static void setBaseConcept_id5r_35Ihc58c(
      @NotNull SNode __thisNode__, SNode baseConcept) {
    SLinkOperations.setTarget(
        __thisNode__,
        MetaAdapterFactory.getReferenceLink(
            0x18bc659203a64e29L,
            0xa83a7ff23bde13baL,
            0xfbc216b31bL,
            0x1094c452c15L,
            "applicableConcept"),
        baseConcept);
  }

  /*package*/ CellKeyMapDeclaration__BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @Nullable Object[] parameters) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) ((SNode) getBaseConcept_id2hxg_BDjKM8(node));
      case 1:
        setBaseConcept_id5r_35Ihc58c(node, (SNode) parameters[0]);
        return null;
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept,
      @NotNull SMethod<T> method,
      @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }
}
public final class QueryFunction_ST_CommonInitializer__BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0xaee9cad2acd44608L,
          0xaef20004f6a1cdbdL,
          0x1182d37f835L,
          "jetbrains.mps.lang.actions.structure.QueryFunction_ST_CommonInitializer");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<Boolean> usesParameterObject_id1653mnvAgq0 =
      new SMethodBuilder<Boolean>(new SJavaCompoundTypeImpl(Boolean.TYPE))
          .name("usesParameterObject")
          .modifiers(SModifiersImpl.create(9, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("1653mnvAgq0")
          .registry(REGISTRY)
          .build();
  public static final SMethod<List<SConcept>> getParameterConcepts_id2xELmDxyi2v =
      new SMethodBuilder<List<SConcept>>(
              new SJavaCompoundTypeImpl((Class<List<SConcept>>) ((Class) Object.class)))
          .name("getParameterConcepts")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("2xELmDxyi2v")
          .registry(REGISTRY)
          .build();
  public static final SMethod<SNode> getExpectedReturnType_idhEwIGRD =
      new SMethodBuilder<SNode>(new SJavaCompoundTypeImpl((Class<SNode>) ((Class) Object.class)))
          .name("getExpectedReturnType")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("hEwIGRD")
          .registry(REGISTRY)
          .build();

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(
          usesParameterObject_id1653mnvAgq0,
          getParameterConcepts_id2xELmDxyi2v,
          getExpectedReturnType_idhEwIGRD);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  /*package*/ static boolean usesParameterObject_id1653mnvAgq0(
      @NotNull SAbstractConcept __thisConcept__) {
    return true;
  }
  /*package*/ static List<SConcept> getParameterConcepts_id2xELmDxyi2v(
      @NotNull SNode __thisNode__) {
    List<SConcept> result =
        ConceptFunction__BehaviorDescriptor.getParameterConcepts_id2xELmDxyi2v.invokeSpecial(
            __thisNode__);
    ListSequence.fromList(result)
        .addElement(
            MetaAdapterFactory.getConcept(
                0x13744753c81f424aL,
                0x9c1bcf8943bf4e86L,
                0x10e761b3745L,
                "jetbrains.mps.lang.sharedConcepts.structure.ConceptFunctionParameter_model"));
    ListSequence.fromList(result)
        .addElement(
            MetaAdapterFactory.getConcept(
                0x13744753c81f424aL,
                0x9c1bcf8943bf4e86L,
                0x10e761c927aL,
                "jetbrains.mps.lang.sharedConcepts.structure.ConceptFunctionParameter_operationContext"));
    ListSequence.fromList(result)
        .addElement(
            MetaAdapterFactory.getConcept(
                0xaee9cad2acd44608L,
                0xaef20004f6a1cdbdL,
                0x112284c7b8bL,
                "jetbrains.mps.lang.actions.structure.ConceptFunctionParameter_sourceNode"));
    return result;
  }
  /*package*/ static SNode getExpectedReturnType_idhEwIGRD(@NotNull SNode __thisNode__) {
    return _quotation_createNode_33ka6k_a0a2();
  }

  /*package*/ QueryFunction_ST_CommonInitializer__BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @Nullable Object[] parameters) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 1:
        return (T) ((List<SConcept>) getParameterConcepts_id2xELmDxyi2v(node));
      case 2:
        return (T) ((SNode) getExpectedReturnType_idhEwIGRD(node));
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept,
      @NotNull SMethod<T> method,
      @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) ((Boolean) usesParameterObject_id1653mnvAgq0(concept));
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }

  private static SNode _quotation_createNode_33ka6k_a0a2() {
    PersistenceFacade facade = PersistenceFacade.getInstance();
    SNode quotedNode_1 = null;
    quotedNode_1 =
        SModelUtil_new.instantiateConceptDeclaration(
            MetaAdapterFactory.getConcept(
                0xf3061a5392264cc5L,
                0xa443f952ceaf5816L,
                0xf8cc6bf96dL,
                "jetbrains.mps.baseLanguage.structure.VoidType"),
            null,
            null,
            false);
    return quotedNode_1;
  }
}
public final class NodeSetupFunction__BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0xaee9cad2acd44608L,
          0xaef20004f6a1cdbdL,
          0x10dc7f89eecL,
          "jetbrains.mps.lang.actions.structure.NodeSetupFunction");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<Boolean> usesParameterObject_id1653mnvAgq0 =
      new SMethodBuilder<Boolean>(new SJavaCompoundTypeImpl(Boolean.TYPE))
          .name("usesParameterObject")
          .modifiers(SModifiersImpl.create(9, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("1653mnvAgq0")
          .registry(REGISTRY)
          .build();
  public static final SMethod<List<SNode>> getApplicableConceptFunctionParameter_id2D1PBM_bxJg =
      new SMethodBuilder<List<SNode>>(
              new SJavaCompoundTypeImpl((Class<List<SNode>>) ((Class) Object.class)))
          .name("getApplicableConceptFunctionParameter")
          .modifiers(SModifiersImpl.create(9, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("2D1PBM_bxJg")
          .registry(REGISTRY)
          .build();

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(
          usesParameterObject_id1653mnvAgq0, getApplicableConceptFunctionParameter_id2D1PBM_bxJg);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  /*package*/ static boolean usesParameterObject_id1653mnvAgq0(
      @NotNull SAbstractConcept __thisConcept__) {
    return false;
  }
  /*package*/ static List<SNode> getApplicableConceptFunctionParameter_id2D1PBM_bxJg(
      @NotNull SAbstractConcept __thisConcept__) {
    List<SNode> result =
        ConceptFunction__BehaviorDescriptor.getApplicableConceptFunctionParameter_id2D1PBM_bxJg
            .invokeSpecial(__thisConcept__);
    ListSequence.fromList(result)
        .addElement(
            SNodeOperations.getNode(
                "r:00000000-0000-4000-0000-011c895902a8(jetbrains.mps.lang.actions.structure)",
                "5584396657084912703"));
    ListSequence.fromList(result)
        .addElement(
            SNodeOperations.getNode(
                "r:00000000-0000-4000-0000-011c895902a8(jetbrains.mps.lang.actions.structure)",
                "5584396657084920413"));
    ListSequence.fromList(result)
        .addElement(
            SNodeOperations.getNode(
                "r:00000000-0000-4000-0000-011c895902a8(jetbrains.mps.lang.actions.structure)",
                "5584396657084920670"));
    ListSequence.fromList(result)
        .addElement(
            SNodeOperations.getNode(
                "r:00000000-0000-4000-0000-011c895902bc(jetbrains.mps.lang.sharedConcepts.structure)",
                "1161622665029"));
    return result;
  }

  /*package*/ NodeSetupFunction__BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @Nullable Object[] parameters) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept,
      @NotNull SMethod<T> method,
      @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) ((Boolean) usesParameterObject_id1653mnvAgq0(concept));
      case 1:
        return (T) ((List<SNode>) getApplicableConceptFunctionParameter_id2D1PBM_bxJg(concept));
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }
}
public final class ExecuteCommandPart_BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0xf3347d8a0e794f35L,
          0x8ac91574f25c986fL,
          0x550ea9458ea107acL,
          "jetbrains.mps.execution.commands.structure.ExecuteCommandPart");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<List<SNode>> getParameters_id5keEkmeCqHW =
      new SMethodBuilder<List<SNode>>(
              new SJavaCompoundTypeImpl((Class<List<SNode>>) ((Class) Object.class)))
          .name("getParameters")
          .modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("5keEkmeCqHW")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<List<SNode>> getRequiredParameters_id5keEkmeCqJD =
      new SMethodBuilder<List<SNode>>(
              new SJavaCompoundTypeImpl((Class<List<SNode>>) ((Class) Object.class)))
          .name("getRequiredParameters")
          .modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("5keEkmeCqJD")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<SNode> getCommandDeclaration_id5keEkmeCqIg =
      new SMethodBuilder<SNode>(new SJavaCompoundTypeImpl((Class<SNode>) ((Class) Object.class)))
          .name("getCommandDeclaration")
          .modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("5keEkmeCqIg")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<List<SNode>> getThrowableTypes_id5op8ooRkkc7 =
      new SMethodBuilder<List<SNode>>(
              new SJavaCompoundTypeImpl((Class<List<SNode>>) ((Class) Object.class)))
          .name("getThrowableTypes")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("5op8ooRkkc7")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<SNode> getBody_idi2fhZ_m =
      new SMethodBuilder<SNode>(new SJavaCompoundTypeImpl((Class<SNode>) ((Class) Object.class)))
          .name("getBody")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("i2fhZ_m")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<SNode> getExpectedRetType_idi2fhBNC =
      new SMethodBuilder<SNode>(new SJavaCompoundTypeImpl((Class<SNode>) ((Class) Object.class)))
          .name("getExpectedRetType")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("i2fhBNC")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<String> getSuffix_id3gpm$NHlLhJ =
      new SMethodBuilder<String>(new SJavaCompoundTypeImpl(String.class))
          .name("getSuffix")
          .modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("3gpm$NHlLhJ")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(
          getParameters_id5keEkmeCqHW,
          getRequiredParameters_id5keEkmeCqJD,
          getCommandDeclaration_id5keEkmeCqIg,
          getThrowableTypes_id5op8ooRkkc7,
          getBody_idi2fhZ_m,
          getExpectedRetType_idi2fhBNC,
          getSuffix_id3gpm$NHlLhJ);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  private static List<SNode> getParameters_id5keEkmeCqHW(@NotNull SNode __thisNode__) {
    if (CommandDeclaration_BehaviorDescriptor.isDebuggable_idJzCdmU6yOQ.invoke(
        ExecuteCommandPart_BehaviorDescriptor.getCommandDeclaration_id5keEkmeCqIg.invoke(
            __thisNode__))) {
      return ListSequence.fromList(
              SLinkOperations.getChildren(
                  __thisNode__,
                  MetaAdapterFactory.getContainmentLink(
                      0xf3347d8a0e794f35L,
                      0x8ac91574f25c986fL,
                      0x550ea9458ea107acL,
                      0x550ea9458ea107adL,
                      "parameterDeclaration")))
          .select(
              new ISelector<SNode, SNode>() {
                public SNode select(SNode it) {
                  return SNodeOperations.cast(
                      it,
                      MetaAdapterFactory.getConcept(
                          0xf3347d8a0e794f35L,
                          0x8ac91574f25c986fL,
                          0x65afee7b2c712158L,
                          "jetbrains.mps.execution.commands.structure.CommandParameterDeclaration"));
                }
              })
          .union(
              Sequence.fromIterable(
                  Sequence.<SNode>singleton(
                      SLinkOperations.getTarget(
                          ExecuteCommandPart_BehaviorDescriptor.getCommandDeclaration_id5keEkmeCqIg
                              .invoke(__thisNode__),
                          MetaAdapterFactory.getContainmentLink(
                              0xf3347d8a0e794f35L,
                              0x8ac91574f25c986fL,
                              0xbe3a0d5ba1a2be8L,
                              0x75aadb0d4e6223baL,
                              "debuggerParameter")))))
          .toListSequence();
    }
    return SLinkOperations.getChildren(
        __thisNode__,
        MetaAdapterFactory.getContainmentLink(
            0xf3347d8a0e794f35L,
            0x8ac91574f25c986fL,
            0x550ea9458ea107acL,
            0x550ea9458ea107adL,
            "parameterDeclaration"));
  }

  private static List<SNode> getRequiredParameters_id5keEkmeCqJD(@NotNull SNode __thisNode__) {
    return ListSequence.fromList(
            ExecuteCommandPart_BehaviorDescriptor.getParameters_id5keEkmeCqHW.invoke(__thisNode__))
        .where(
            new IWhereFilter<SNode>() {
              public boolean accept(SNode it) {
                return CommandParameterDeclaration_BehaviorDescriptor.isRequired_id7c4O8d8q0tV
                    .invoke(it);
              }
            })
        .toListSequence();
  }

  private static SNode getCommandDeclaration_id5keEkmeCqIg(@NotNull SNode __thisNode__) {
    return SNodeOperations.getNodeAncestor(
        __thisNode__,
        MetaAdapterFactory.getConcept(
            0xf3347d8a0e794f35L,
            0x8ac91574f25c986fL,
            0xbe3a0d5ba1a2be8L,
            "jetbrains.mps.execution.commands.structure.CommandDeclaration"),
        false,
        false);
  }

  private static List<SNode> getThrowableTypes_id5op8ooRkkc7(@NotNull SNode __thisNode__) {
    return ListSequence.fromListAndArray(
        new ArrayList<SNode>(), _quotation_createNode_qal9w4_a0a0a3());
  }

  private static SNode getBody_idi2fhZ_m(@NotNull SNode __thisNode__) {
    return SLinkOperations.getTarget(
        SLinkOperations.getTarget(
            __thisNode__,
            MetaAdapterFactory.getContainmentLink(
                0xf3347d8a0e794f35L,
                0x8ac91574f25c986fL,
                0x550ea9458ea107acL,
                0x550ea9458ea107aeL,
                "execute")),
        MetaAdapterFactory.getContainmentLink(
            0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xfc092b6b77L, 0xfc092b6b78L, "statements"));
  }

  private static SNode getExpectedRetType_idi2fhBNC(@NotNull SNode __thisNode__) {
    return createJoinType_qal9w4_a0a5();
  }

  private static String getSuffix_id3gpm$NHlLhJ(@NotNull SNode __thisNode__) {
    return "_"
        + IGeneratedToClass_BehaviorDescriptor.getValidClassName_id3gpm$NHlLi1.invoke(
            SNodeOperations.asSConcept(
                MetaAdapterFactory.getInterfaceConcept(
                        0x73c1a49099fa4d0dL,
                        0x8292b8985697c74bL,
                        0xd244b712f9dcdabL,
                        "jetbrains.mps.execution.common.structure.IGeneratedToClass")
                    .getDeclarationNode()),
            __thisNode__.getNodeId().toString());
  }

  /*package*/ ExecuteCommandPart_BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @NotNull Object[] array) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) getParameters_id5keEkmeCqHW(node);
      case 1:
        return (T) getRequiredParameters_id5keEkmeCqJD(node);
      case 2:
        return (T) getCommandDeclaration_id5keEkmeCqIg(node);
      case 3:
        return (T) getThrowableTypes_id5op8ooRkkc7(node);
      case 4:
        return (T) getBody_idi2fhZ_m(node);
      case 5:
        return (T) getExpectedRetType_idi2fhBNC(node);
      case 6:
        return (T) getSuffix_id3gpm$NHlLhJ(node);
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }

  private static SNode _quotation_createNode_qal9w4_a0a0a3() {
    PersistenceFacade facade = PersistenceFacade.getInstance();
    SNode quotedNode_1 = null;
    quotedNode_1 =
        SModelUtil_new.instantiateConceptDeclaration(
            MetaAdapterFactory.getConcept(
                0xf3061a5392264cc5L,
                0xa443f952ceaf5816L,
                0x101de48bf9eL,
                "jetbrains.mps.baseLanguage.structure.ClassifierType"),
            null,
            null,
            false);
    quotedNode_1.setReference(
        MetaAdapterFactory.getReferenceLink(
            0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x101de48bf9eL, 0x101de490babL, "classifier"),
        SReference.create(
            MetaAdapterFactory.getReferenceLink(
                0xf3061a5392264cc5L,
                0xa443f952ceaf5816L,
                0x101de48bf9eL,
                0x101de490babL,
                "classifier"),
            quotedNode_1,
            facade.createModelReference(
                "498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.execution(MPS.IDEA/)"),
            facade.createNodeId("~ExecutionException")));
    return quotedNode_1;
  }

  private static SNode createJoinType_qal9w4_a0a5() {
    PersistenceFacade facade = PersistenceFacade.getInstance();
    SNode n1 =
        SModelUtil_new.instantiateConceptDeclaration(
            MetaAdapterFactory.getConcept(
                0x7a5dda6291404668L,
                0xab76d5ed1746f2b2L,
                0x1129e737f02L,
                "jetbrains.mps.lang.typesystem.structure.JoinType"),
            null,
            null,
            false);
    {
      SNode n2 =
          SModelUtil_new.instantiateConceptDeclaration(
              MetaAdapterFactory.getConcept(
                  0xf3347d8a0e794f35L,
                  0x8ac91574f25c986fL,
                  0xbe3a0d5ba1a2c12L,
                  "jetbrains.mps.execution.commands.structure.ProcessType"),
              null,
              null,
              false);
      n1.addChild(
          MetaAdapterFactory.getContainmentLink(
              0x7a5dda6291404668L, 0xab76d5ed1746f2b2L, 0x1129e737f02L, 0x1129e73a76aL, "argument"),
          n2);
      SNode n3 =
          SModelUtil_new.instantiateConceptDeclaration(
              MetaAdapterFactory.getConcept(
                  0xf3061a5392264cc5L,
                  0xa443f952ceaf5816L,
                  0x101de48bf9eL,
                  "jetbrains.mps.baseLanguage.structure.ClassifierType"),
              null,
              null,
              false);
      n3.setReference(
          MetaAdapterFactory.getReferenceLink(
              0xf3061a5392264cc5L,
              0xa443f952ceaf5816L,
              0x101de48bf9eL,
              0x101de490babL,
              "classifier"),
          SReference.create(
              MetaAdapterFactory.getReferenceLink(
                  0xf3061a5392264cc5L,
                  0xa443f952ceaf5816L,
                  0x101de48bf9eL,
                  0x101de490babL,
                  "classifier"),
              n3,
              facade.createModelReference(
                  "498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.execution.process(MPS.IDEA/)"),
              facade.createNodeId("~ProcessHandler")));
      n1.addChild(
          MetaAdapterFactory.getContainmentLink(
              0x7a5dda6291404668L, 0xab76d5ed1746f2b2L, 0x1129e737f02L, 0x1129e73a76aL, "argument"),
          n3);
    }
    return n1;
  }
}
public final class BuildSourceMacroRelativePath_BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x798100da4f0a421aL,
          0xb99171f8c50ce5d2L,
          0x668c6cfbafae121dL,
          "jetbrains.mps.build.structure.BuildSourceMacroRelativePath");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<String> getBasePath_id4jjtc7WZMYz =
      new SMethodBuilder<String>(new SJavaCompoundTypeImpl(String.class))
          .name("getBasePath")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("4jjtc7WZMYz")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses(Context.class)));
  public static final SMethod<String> getRelativePath_id4Kip2_918YF =
      new SMethodBuilder<String>(new SJavaCompoundTypeImpl(String.class))
          .name("getRelativePath")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("4Kip2_918YF")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(getBasePath_id4jjtc7WZMYz, getRelativePath_id4Kip2_918YF);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  private static String getBasePath_id4jjtc7WZMYz(@NotNull SNode __thisNode__, Context context) {
    return BuildFolderMacro_BehaviorDescriptor.evaluate_id4jjtc7WZOzA.invoke(
        SLinkOperations.getTarget(
            __thisNode__,
            MetaAdapterFactory.getReferenceLink(
                0x798100da4f0a421aL,
                0xb99171f8c50ce5d2L,
                0x668c6cfbafae121dL,
                0x668c6cfbafae122aL,
                "macro")),
        context);
  }

  private static String getRelativePath_id4Kip2_918YF(@NotNull SNode __thisNode__) {
    String tail =
        BuildRelativePath_BehaviorDescriptor.getPathTail_id15RAxQX0M4T.invoke(__thisNode__);
    return ((tail == null || tail.length() == 0)
        ? "${"
            + SPropertyOperations.getString(
                SLinkOperations.getTarget(
                    __thisNode__,
                    MetaAdapterFactory.getReferenceLink(
                        0x798100da4f0a421aL,
                        0xb99171f8c50ce5d2L,
                        0x668c6cfbafae121dL,
                        0x668c6cfbafae122aL,
                        "macro")),
                MetaAdapterFactory.getProperty(
                    0xceab519525ea4f22L,
                    0x9b92103b95ca8c0cL,
                    0x110396eaaa4L,
                    0x110396ec041L,
                    "name"))
            + "}"
        : "${"
            + SPropertyOperations.getString(
                SLinkOperations.getTarget(
                    __thisNode__,
                    MetaAdapterFactory.getReferenceLink(
                        0x798100da4f0a421aL,
                        0xb99171f8c50ce5d2L,
                        0x668c6cfbafae121dL,
                        0x668c6cfbafae122aL,
                        "macro")),
                MetaAdapterFactory.getProperty(
                    0xceab519525ea4f22L,
                    0x9b92103b95ca8c0cL,
                    0x110396eaaa4L,
                    0x110396ec041L,
                    "name"))
            + "}/"
            + tail);
  }

  /*package*/ BuildSourceMacroRelativePath_BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @NotNull Object[] array) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) getBasePath_id4jjtc7WZMYz(node, (Context) parameters[0]);
      case 1:
        return (T) getRelativePath_id4Kip2_918YF(node);
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }
}
public final class IsApplicableBlock_BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x64d34fcdad024e73L,
          0xaff8a581124c2e30L,
          0x116b5695a94L,
          "jetbrains.mps.lang.findUsages.structure.IsApplicableBlock");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<Boolean> showName_id1653mnvAgry =
      new SMethodBuilder<Boolean>(new SJavaCompoundTypeImpl(Boolean.TYPE))
          .name("showName")
          .modifiers(SModifiersImpl.create(9, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("1653mnvAgry")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<List<SNode>> getApplicableConceptFunctionParameter_id2D1PBM_bxJg =
      new SMethodBuilder<List<SNode>>(
              new SJavaCompoundTypeImpl((Class<List<SNode>>) ((Class) Object.class)))
          .name("getApplicableConceptFunctionParameter")
          .modifiers(SModifiersImpl.create(9, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("2D1PBM_bxJg")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<SNode> getExpectedReturnType_idhEwIGRD =
      new SMethodBuilder<SNode>(new SJavaCompoundTypeImpl((Class<SNode>) ((Class) Object.class)))
          .name("getExpectedReturnType")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("hEwIGRD")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(
          showName_id1653mnvAgry,
          getApplicableConceptFunctionParameter_id2D1PBM_bxJg,
          getExpectedReturnType_idhEwIGRD);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  private static Boolean showName_id1653mnvAgry(@NotNull SAbstractConcept __thisConcept__) {
    return true;
  }

  private static List<SNode> getApplicableConceptFunctionParameter_id2D1PBM_bxJg(
      @NotNull SAbstractConcept __thisConcept__) {
    List<SNode> result =
        ConceptFunction_BehaviorDescriptor.getApplicableConceptFunctionParameter_id2D1PBM_bxJg
            .invokeSpecial(__thisConcept__);
    ListSequence.fromList(result)
        .addElement(
            SNodeOperations.getNode(
                "r:00000000-0000-4000-0000-011c8959035b(jetbrains.mps.lang.findUsages.structure)",
                "1197386047362"));
    return result;
  }

  private static SNode getExpectedReturnType_idhEwIGRD(@NotNull SNode __thisNode__) {
    return _quotation_createNode_alktie_a0a2();
  }

  /*package*/ IsApplicableBlock_BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @NotNull Object[] array) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 2:
        return (T) getExpectedReturnType_idhEwIGRD(node);
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) showName_id1653mnvAgry(concept);
      case 1:
        return (T) getApplicableConceptFunctionParameter_id2D1PBM_bxJg(concept);
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }

  private static SNode _quotation_createNode_alktie_a0a2() {
    PersistenceFacade facade = PersistenceFacade.getInstance();
    SNode quotedNode_1 = null;
    quotedNode_1 =
        SModelUtil_new.instantiateConceptDeclaration(
            MetaAdapterFactory.getConcept(
                0xf3061a5392264cc5L,
                0xa443f952ceaf5816L,
                0xf940d6513eL,
                "jetbrains.mps.baseLanguage.structure.BooleanType"),
            null,
            null,
            false);
    return quotedNode_1;
  }
}
public final class BuildSource_JavaExternalJarFolderRef_BehaviorDescriptor
    extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x798100da4f0a421aL,
          0xb99171f8c50ce5d2L,
          0x4ddcec86afb65a3fL,
          "jetbrains.mps.build.structure.BuildSource_JavaExternalJarFolderRef");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<SNode> getDependencyTarget_id4RsV8qJH_ED =
      new SMethodBuilder<SNode>(new SJavaCompoundTypeImpl((Class<SNode>) ((Class) Object.class)))
          .name("getDependencyTarget")
          .modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("4RsV8qJH_ED")
          .registry(REGISTRY)
          .build(
              SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses(VisibleArtifacts.class)));

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(getDependencyTarget_id4RsV8qJH_ED);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  private static SNode getDependencyTarget_id4RsV8qJH_ED(
      @NotNull SNode __thisNode__, VisibleArtifacts artifacts) {
    if (SNodeOperations.getContainingRoot(__thisNode__)
        == SNodeOperations.getContainingRoot(
            SLinkOperations.getTarget(
                __thisNode__,
                MetaAdapterFactory.getReferenceLink(
                    0x798100da4f0a421aL,
                    0xb99171f8c50ce5d2L,
                    0x4ddcec86afb65a3fL,
                    0x4ddcec86afb65a40L,
                    "folder")))) {
      return null;
    }

    return JavaExportUtil.requireJarFolder(
        artifacts,
        SLinkOperations.getTarget(
            __thisNode__,
            MetaAdapterFactory.getReferenceLink(
                0x798100da4f0a421aL,
                0xb99171f8c50ce5d2L,
                0x4ddcec86afb65a3fL,
                0x4ddcec86afb65a40L,
                "folder")),
        __thisNode__);
  }

  /*package*/ BuildSource_JavaExternalJarFolderRef_BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @NotNull Object[] array) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) getDependencyTarget_id4RsV8qJH_ED(node, (VisibleArtifacts) parameters[0]);
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }
}
public final class BLCommand_BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0xde1ad86d6e504a02L,
          0xb306d4d17f64c375L,
          0x4bd43869e610f3e9L,
          "jetbrains.mps.console.base.structure.BLCommand");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<SNode> getExpectedRetType_idi2fhBNC =
      new SMethodBuilder<SNode>(new SJavaCompoundTypeImpl((Class<SNode>) ((Class) Object.class)))
          .name("getExpectedRetType")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("i2fhBNC")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<SNode> getBody_idi2fhZ_m =
      new SMethodBuilder<SNode>(new SJavaCompoundTypeImpl((Class<SNode>) ((Class) Object.class)))
          .name("getBody")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("i2fhZ_m")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<List<SNode>> getThrowableTypes_id5op8ooRkkc7 =
      new SMethodBuilder<List<SNode>>(
              new SJavaCompoundTypeImpl((Class<List<SNode>>) ((Class) Object.class)))
          .name("getThrowableTypes")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("5op8ooRkkc7")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<String> getShortHelp_idqgIopNa9Hb =
      new SMethodBuilder<String>(new SJavaCompoundTypeImpl(String.class))
          .name("getShortHelp")
          .modifiers(SModifiersImpl.create(9, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("qgIopNa9Hb")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<String> getShortDisplayString_id64VftqEenfn =
      new SMethodBuilder<String>(new SJavaCompoundTypeImpl(String.class))
          .name("getDisplayString")
          .modifiers(SModifiersImpl.create(9, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("64VftqEenfn")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(
          getExpectedRetType_idi2fhBNC,
          getBody_idi2fhZ_m,
          getThrowableTypes_id5op8ooRkkc7,
          getShortHelp_idqgIopNa9Hb,
          getShortDisplayString_id64VftqEenfn);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  private static SNode getExpectedRetType_idi2fhBNC(@NotNull SNode __thisNode__) {
    return _quotation_createNode_1tnz54_a0a0();
  }

  private static SNode getBody_idi2fhZ_m(@NotNull SNode __thisNode__) {
    return SLinkOperations.getTarget(
        __thisNode__,
        MetaAdapterFactory.getContainmentLink(
            0xde1ad86d6e504a02L,
            0xb306d4d17f64c375L,
            0x4bd43869e610f3e9L,
            0x188f8efcef6cea65L,
            "body"));
  }

  private static List<SNode> getThrowableTypes_id5op8ooRkkc7(@NotNull SNode __thisNode__) {
    List<SNode> result = new ArrayList<SNode>();
    ListSequence.fromList(result).addElement(_quotation_createNode_1tnz54_a0a1a2());
    return result;
  }

  private static String getShortHelp_idqgIopNa9Hb(@NotNull SAbstractConcept __thisConcept__) {
    return "execute a statement list";
  }

  private static String getShortDisplayString_id64VftqEenfn(
      @NotNull SAbstractConcept __thisConcept__) {
    return "{ <statements> }";
  }

  /*package*/ BLCommand_BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @NotNull Object[] array) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) getExpectedRetType_idi2fhBNC(node);
      case 1:
        return (T) getBody_idi2fhZ_m(node);
      case 2:
        return (T) getThrowableTypes_id5op8ooRkkc7(node);
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 3:
        return (T) getShortHelp_idqgIopNa9Hb(concept);
      case 4:
        return (T) getShortDisplayString_id64VftqEenfn(concept);
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }

  private static SNode _quotation_createNode_1tnz54_a0a0() {
    PersistenceFacade facade = PersistenceFacade.getInstance();
    SNode quotedNode_1 = null;
    quotedNode_1 =
        SModelUtil_new.instantiateConceptDeclaration(
            MetaAdapterFactory.getConcept(
                0xf3061a5392264cc5L,
                0xa443f952ceaf5816L,
                0xf8cc6bf96dL,
                "jetbrains.mps.baseLanguage.structure.VoidType"),
            null,
            null,
            false);
    return quotedNode_1;
  }

  private static SNode _quotation_createNode_1tnz54_a0a1a2() {
    PersistenceFacade facade = PersistenceFacade.getInstance();
    SNode quotedNode_1 = null;
    quotedNode_1 =
        SModelUtil_new.instantiateConceptDeclaration(
            MetaAdapterFactory.getConcept(
                0xf3061a5392264cc5L,
                0xa443f952ceaf5816L,
                0x101de48bf9eL,
                "jetbrains.mps.baseLanguage.structure.ClassifierType"),
            null,
            null,
            false);
    quotedNode_1.setReference(
        MetaAdapterFactory.getReferenceLink(
            0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x101de48bf9eL, 0x101de490babL, "classifier"),
        SReference.create(
            MetaAdapterFactory.getReferenceLink(
                0xf3061a5392264cc5L,
                0xa443f952ceaf5816L,
                0x101de48bf9eL,
                0x101de490babL,
                "classifier"),
            quotedNode_1,
            facade.createModelReference(
                "6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)"),
            facade.createNodeId("~Exception")));
    return quotedNode_1;
  }
}
public final class LambdaExpression_BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x7c9e280794ad4afcL,
          0xadf0aaee45eb2895L,
          0x37d11ba7d7ec98e9L,
          "jetbrains.mps.samples.lambdaCalculus.structure.LambdaExpression");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<SNode> getOuterApplication_id18EhrW3IG0h =
      new SMethodBuilder<SNode>(new SJavaCompoundTypeImpl((Class<SNode>) ((Class) Object.class)))
          .name("getOuterApplication")
          .modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("18EhrW3IG0h")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<Boolean> hasParameterRefs_id6qD99pUaonP =
      new SMethodBuilder<Boolean>(new SJavaCompoundTypeImpl(Boolean.TYPE))
          .name("hasParameterRefs")
          .modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("6qD99pUaonP")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<Boolean> isInFull_id6nQdzuslK0D =
      new SMethodBuilder<Boolean>(new SJavaCompoundTypeImpl(Boolean.TYPE))
          .name("isInFull")
          .modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("6nQdzuslK0D")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<List<SNode>> getOuterVariables_id4zrttnsimEk =
      new SMethodBuilder<List<SNode>>(
              new SJavaCompoundTypeImpl((Class<List<SNode>>) ((Class) Object.class)))
          .name("getOuterVariables")
          .modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("4zrttnsimEk")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(
          getOuterApplication_id18EhrW3IG0h,
          hasParameterRefs_id6qD99pUaonP,
          isInFull_id6nQdzuslK0D,
          getOuterVariables_id4zrttnsimEk);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  private static SNode getOuterApplication_id18EhrW3IG0h(@NotNull SNode __thisNode__) {
    if (!((SNodeOperations.isInstanceOf(
                SNodeOperations.getParent(__thisNode__),
                MetaAdapterFactory.getConcept(
                    0x7c9e280794ad4afcL,
                    0xadf0aaee45eb2895L,
                    0x37d11ba7d7ee2dddL,
                    "jetbrains.mps.samples.lambdaCalculus.structure.LambdaApplication"))
            && SLinkOperations.getTarget(
                    SNodeOperations.cast(
                        SNodeOperations.getParent(__thisNode__),
                        MetaAdapterFactory.getConcept(
                            0x7c9e280794ad4afcL,
                            0xadf0aaee45eb2895L,
                            0x37d11ba7d7ee2dddL,
                            "jetbrains.mps.samples.lambdaCalculus.structure.LambdaApplication")),
                    MetaAdapterFactory.getContainmentLink(
                        0x7c9e280794ad4afcL,
                        0xadf0aaee45eb2895L,
                        0x37d11ba7d7ee2dddL,
                        0x37d11ba7d7ee2de0L,
                        "function"))
                == __thisNode__))
        && SNodeOperations.isInstanceOf(
            __thisNode__,
            MetaAdapterFactory.getConcept(
                0x7c9e280794ad4afcL,
                0xadf0aaee45eb2895L,
                0x37d11ba7d7ee2dddL,
                "jetbrains.mps.samples.lambdaCalculus.structure.LambdaApplication"))) {
      return SNodeOperations.cast(
          __thisNode__,
          MetaAdapterFactory.getConcept(
              0x7c9e280794ad4afcL,
              0xadf0aaee45eb2895L,
              0x37d11ba7d7ee2dddL,
              "jetbrains.mps.samples.lambdaCalculus.structure.LambdaApplication"));

    } else if (SNodeOperations.getParent(__thisNode__) != null
        && !(SNodeOperations.isInstanceOf(
            SNodeOperations.getParent(__thisNode__),
            MetaAdapterFactory.getConcept(
                0x7c9e280794ad4afcL,
                0xadf0aaee45eb2895L,
                0x448ba254edbfc79fL,
                "jetbrains.mps.samples.lambdaCalculus.structure.LetExpression")))
        && !(SNodeOperations.isInstanceOf(
            SNodeOperations.getParent(__thisNode__),
            MetaAdapterFactory.getConcept(
                0x7c9e280794ad4afcL,
                0xadf0aaee45eb2895L,
                0x37d11ba7d7fc0389L,
                "jetbrains.mps.samples.lambdaCalculus.structure.Program")))) {
      return LambdaExpression_BehaviorDescriptor.getOuterApplication_id18EhrW3IG0h.invoke(
          SNodeOperations.cast(
              SNodeOperations.getParent(__thisNode__),
              MetaAdapterFactory.getConcept(
                  0x7c9e280794ad4afcL,
                  0xadf0aaee45eb2895L,
                  0x37d11ba7d7ec98e9L,
                  "jetbrains.mps.samples.lambdaCalculus.structure.LambdaExpression")));
    }
    return null;
  }

  private static Boolean hasParameterRefs_id6qD99pUaonP(@NotNull SNode __thisNode__) {
    SNode node = __thisNode__;
    node = SNodeOperations.getParent(node);
    while (node != null
        && !((SNodeOperations.isInstanceOf(
                node,
                MetaAdapterFactory.getInterfaceConcept(
                    0x7c9e280794ad4afcL,
                    0xadf0aaee45eb2895L,
                    0x48db75d5dc496a4fL,
                    "jetbrains.mps.samples.lambdaCalculus.structure.VariableOwner"))
            && !(ListSequence.fromList(
                    VariableOwner_BehaviorDescriptor.getVariables_id7M_MU5__$7C.invoke(
                        SNodeOperations.cast(
                            node,
                            MetaAdapterFactory.getInterfaceConcept(
                                0x7c9e280794ad4afcL,
                                0xadf0aaee45eb2895L,
                                0x48db75d5dc496a4fL,
                                "jetbrains.mps.samples.lambdaCalculus.structure.VariableOwner"))))
                .contains(
                    SNodeOperations.as(
                        __thisNode__,
                        MetaAdapterFactory.getConcept(
                            0x7c9e280794ad4afcL,
                            0xadf0aaee45eb2895L,
                            0x48db75d5dc496b12L,
                            "jetbrains.mps.samples.lambdaCalculus.structure.Variable"))))))) {
      node = SNodeOperations.getParent(node);
    }
    if (SNodeOperations.isInstanceOf(
        node,
        MetaAdapterFactory.getConcept(
            0x7c9e280794ad4afcL,
            0xadf0aaee45eb2895L,
            0x448ba254edbfc79fL,
            "jetbrains.mps.samples.lambdaCalculus.structure.LetExpression"))) {
      return true;
    }
    if (!(SNodeOperations.isInstanceOf(
        node,
        MetaAdapterFactory.getConcept(
            0x7c9e280794ad4afcL,
            0xadf0aaee45eb2895L,
            0x37d11ba7d7ec98e9L,
            "jetbrains.mps.samples.lambdaCalculus.structure.LambdaExpression")))) {
      return false;
    }
    return LambdaExpression_BehaviorDescriptor.isInFull_id6nQdzuslK0D.invoke(
        SNodeOperations.cast(
            node,
            MetaAdapterFactory.getConcept(
                0x7c9e280794ad4afcL,
                0xadf0aaee45eb2895L,
                0x37d11ba7d7ec98e9L,
                "jetbrains.mps.samples.lambdaCalculus.structure.LambdaExpression")));
  }

  private static Boolean isInFull_id6nQdzuslK0D(@NotNull SNode __thisNode__) {
    SNode appl =
        LambdaExpression_BehaviorDescriptor.getOuterApplication_id18EhrW3IG0h.invoke(__thisNode__);
    if (null == appl) {
      return false;
    }
    return LambdaApplication_BehaviorDescriptor.isFullApplication_id18EhrW3IFXQ.invoke(
        LambdaExpression_BehaviorDescriptor.getOuterApplication_id18EhrW3IG0h.invoke(__thisNode__));
  }

  private static List<SNode> getOuterVariables_id4zrttnsimEk(@NotNull SNode __thisNode__) {
    List<SNode> allVar =
        SNodeOperations.getNodeDescendants(
            __thisNode__,
            MetaAdapterFactory.getConcept(
                0x7c9e280794ad4afcL,
                0xadf0aaee45eb2895L,
                0x48db75d5dc496b12L,
                "jetbrains.mps.samples.lambdaCalculus.structure.Variable"),
            false,
            new SAbstractConcept[] {});
    List<SNode> allRef =
        SNodeOperations.getNodeDescendants(
            __thisNode__,
            MetaAdapterFactory.getConcept(
                0x7c9e280794ad4afcL,
                0xadf0aaee45eb2895L,
                0x48db75d5dc496b08L,
                "jetbrains.mps.samples.lambdaCalculus.structure.VariableReference"),
            false,
            new SAbstractConcept[] {});
    List<SNode> result = new ArrayList<SNode>();
    for (SNode ref : allRef) {
      if (!(ListSequence.fromList(allVar)
              .contains(
                  SLinkOperations.getTarget(
                      ref,
                      MetaAdapterFactory.getReferenceLink(
                          0x7c9e280794ad4afcL,
                          0xadf0aaee45eb2895L,
                          0x48db75d5dc496b08L,
                          0x48db75d5dc497af4L,
                          "variable"))))
          && !(ListSequence.fromList(result)
              .contains(
                  SLinkOperations.getTarget(
                      ref,
                      MetaAdapterFactory.getReferenceLink(
                          0x7c9e280794ad4afcL,
                          0xadf0aaee45eb2895L,
                          0x48db75d5dc496b08L,
                          0x48db75d5dc497af4L,
                          "variable"))))) {
        ListSequence.fromList(result)
            .addElement(
                SLinkOperations.getTarget(
                    ref,
                    MetaAdapterFactory.getReferenceLink(
                        0x7c9e280794ad4afcL,
                        0xadf0aaee45eb2895L,
                        0x48db75d5dc496b08L,
                        0x48db75d5dc497af4L,
                        "variable")));
      }
    }
    return result;
  }

  /*package*/ LambdaExpression_BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @NotNull Object[] array) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) getOuterApplication_id18EhrW3IG0h(node);
      case 1:
        return (T) hasParameterRefs_id6qD99pUaonP(node);
      case 2:
        return (T) isInFull_id6nQdzuslK0D(node);
      case 3:
        return (T) getOuterVariables_id4zrttnsimEk(node);
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }
}
public final class ExpectedOption__BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x95f8a3e6f9944ca0L,
          0xa65e763c9bae2d3bL,
          0x70276038dc4d7bbL,
          "jetbrains.mps.make.script.structure.ExpectedOption");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<String> classifierName_id3ZSHU3pg$b_ =
      new SMethodBuilder<String>(new SJavaCompoundTypeImpl(String.class))
          .name("classifierName")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("3ZSHU3pg$b_")
          .registry(REGISTRY)
          .build();

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(classifierName_id3ZSHU3pg$b_);

  private static void ___init___(@NotNull SNode __thisNode__) {
    SPropertyOperations.set(
        __thisNode__,
        MetaAdapterFactory.getProperty(
            0x95f8a3e6f9944ca0L,
            0xa65e763c9bae2d3bL,
            0x70276038dc4d7bbL,
            0x3318e2a89ff0296cL,
            "defaultOption"),
        "" + (-1));
  }

  /*package*/ static String classifierName_id3ZSHU3pg$b_(@NotNull SNode __thisNode__) {
    return NameUtil.toValidCamelIdentifier(
            SPropertyOperations.getString(
                __thisNode__,
                MetaAdapterFactory.getProperty(
                    0xceab519525ea4f22L,
                    0x9b92103b95ca8c0cL,
                    0x110396eaaa4L,
                    0x110396ec041L,
                    "name")))
        + "_"
        + SPropertyOperations.getString(
            SNodeOperations.getConceptDeclaration(__thisNode__),
            MetaAdapterFactory.getProperty(
                0xc72da2b97cce4447L,
                0x8389f407dc1158b7L,
                0x1103553c5ffL,
                0x46ab0ad5826c74caL,
                "conceptAlias"));
  }

  /*package*/ ExpectedOption__BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @Nullable Object[] parameters) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) ((String) classifierName_id3ZSHU3pg$b_(node));
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept,
      @NotNull SMethod<T> method,
      @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }
}
public final class NodeConstraintsWarningCheckOperation_BehaviorDescriptor
    extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x8585453e6bfb4d80L,
          0x98deb16074f1d86cL,
          0x73a7cdcfbbbf8aadL,
          "jetbrains.mps.lang.test.structure.NodeConstraintsWarningCheckOperation");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<Boolean> canAttachReference_id2wBFdLy7HtS =
      new SMethodBuilder<Boolean>(new SJavaCompoundTypeImpl(Boolean.TYPE))
          .name("canAttachReference")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("2wBFdLy7HtS")
          .registry(REGISTRY)
          .build(
              SParameterImpl.fromList(
                  SJavaCompoundTypeImpl.fromClasses((Class<SNode>) ((Class) Object.class))));
  public static final SMethod<Void> attachReference_id2wBFdLy8qmn =
      new SMethodBuilder<Void>(new SJavaCompoundTypeImpl(Void.class))
          .name("attachReference")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("2wBFdLy8qmn")
          .registry(REGISTRY)
          .build(
              SParameterImpl.fromList(
                  SJavaCompoundTypeImpl.fromClasses((Class<SNode>) ((Class) Object.class))));
  public static final SMethod<SNode> getReference_id7eBNsYUkslm =
      new SMethodBuilder<SNode>(new SJavaCompoundTypeImpl((Class<SNode>) ((Class) Object.class)))
          .name("getReference")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("7eBNsYUkslm")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(
          canAttachReference_id2wBFdLy7HtS,
          attachReference_id2wBFdLy8qmn,
          getReference_id7eBNsYUkslm);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  private static Boolean canAttachReference_id2wBFdLy7HtS(
      @NotNull SNode __thisNode__, SNode reference) {
    return new NodeRuleReference(reference).getType() == RuleType.CONSTRAINTS;
  }

  private static void attachReference_id2wBFdLy8qmn(@NotNull SNode __thisNode__, SNode reference) {
    assert IReferenceAttachable_BehaviorDescriptor.canAttachReference_id2wBFdLy7HtS.invoke(
        __thisNode__, reference);
    SLinkOperations.setTarget(
        __thisNode__,
        MetaAdapterFactory.getContainmentLink(
            0x8585453e6bfb4d80L,
            0x98deb16074f1d86cL,
            0x73a7cdcfbbbf8aadL,
            0x73a7cdcfbbbf8c41L,
            "warningRef"),
        SConceptOperations.createNewNode(
            SNodeOperations.asInstanceConcept(
                MetaAdapterFactory.getConcept(
                    0x8585453e6bfb4d80L,
                    0x98deb16074f1d86cL,
                    0x6abc06f5f4af0d67L,
                    "jetbrains.mps.lang.test.structure.UnknownRuleReference"))));
    SLinkOperations.setTarget(
        SLinkOperations.getTarget(
            __thisNode__,
            MetaAdapterFactory.getContainmentLink(
                0x8585453e6bfb4d80L,
                0x98deb16074f1d86cL,
                0x73a7cdcfbbbf8aadL,
                0x73a7cdcfbbbf8c41L,
                "warningRef")),
        MetaAdapterFactory.getReferenceLink(
            0x8585453e6bfb4d80L,
            0x98deb16074f1d86cL,
            0x6abc06f5f4afab9dL,
            0x73a7cdcfba51f755L,
            "declaration"),
        reference);
  }

  private static SNode getReference_id7eBNsYUkslm(@NotNull SNode __thisNode__) {
    return SLinkOperations.getTarget(
        __thisNode__,
        MetaAdapterFactory.getContainmentLink(
            0x8585453e6bfb4d80L,
            0x98deb16074f1d86cL,
            0x73a7cdcfbbbf8aadL,
            0x73a7cdcfbbbf8c41L,
            "warningRef"));
  }

  /*package*/ NodeConstraintsWarningCheckOperation_BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @NotNull Object[] array) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) canAttachReference_id2wBFdLy7HtS(node, (SNode) parameters[0]);
      case 1:
        attachReference_id2wBFdLy8qmn(node, (SNode) parameters[0]);
        return null;
      case 2:
        return (T) getReference_id7eBNsYUkslm(node);
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }
}
public final class BuildString_BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x798100da4f0a421aL,
          0xb99171f8c50ce5d2L,
          0x3cca41cd0fe51d4fL,
          "jetbrains.mps.build.structure.BuildString");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<String> getText_id3NagsOfTioI =
      new SMethodBuilder<String>(new SJavaCompoundTypeImpl(String.class))
          .name("getText")
          .modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("3NagsOfTioI")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses(MacroHelper.class)));

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(getText_id3NagsOfTioI);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  private static String getText_id3NagsOfTioI(@NotNull SNode __thisNode__, MacroHelper helper) {
    StringBuilder sb = new StringBuilder();
    for (SNode n :
        ListSequence.fromList(
            SLinkOperations.getChildren(
                __thisNode__,
                MetaAdapterFactory.getContainmentLink(
                    0x798100da4f0a421aL,
                    0xb99171f8c50ce5d2L,
                    0x3cca41cd0fe51d4fL,
                    0x440d7ea3b68cba4bL,
                    "parts")))) {
      sb.append(BuildStringPart_BehaviorDescriptor.getText_id3NagsOfTq4Y.invoke(n, helper));
    }
    return sb.toString();
  }

  /*package*/ BuildString_BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @NotNull Object[] array) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) getText_id3NagsOfTioI(node, (MacroHelper) parameters[0]);
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }
}
public final class StatCommand__BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0xa5e4de5346a344daL,
          0xaab368fdf1c34ed0L,
          0x67f2bafb7a558c98L,
          "jetbrains.mps.console.ideCommands.structure.StatCommand");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<Void> doExecute_id2SpVAIqougW =
      new SMethodBuilder<Void>(new SJavaCompoundTypeImpl(Void.class))
          .name("doExecute")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("2SpVAIqougW")
          .registry(REGISTRY)
          .build(
              SMethodBuilder.createJavaParameter(ConsoleContext.class, ""),
              SMethodBuilder.createJavaParameter(ConsoleStream.class, ""));

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(doExecute_id2SpVAIqougW);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  /*package*/ static void doExecute_id2SpVAIqougW(
      @NotNull SNode __thisNode__, ConsoleContext context, ConsoleStream console) {
    OutputUtils.printStat(
        console,
        IStatisticsTarget__BehaviorDescriptor.getStat_id6vMIJHUBlVT.invoke(
            SLinkOperations.getTarget(
                __thisNode__,
                MetaAdapterFactory.getContainmentLink(
                    0xa5e4de5346a344daL,
                    0xaab368fdf1c34ed0L,
                    0x67f2bafb7a558c98L,
                    0x67f2bafb7a579cb3L,
                    "target")),
            context));
  }

  /*package*/ StatCommand__BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @Nullable Object[] parameters) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        doExecute_id2SpVAIqougW(
            node, (ConsoleContext) parameters[0], (ConsoleStream) parameters[1]);
        return null;
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept,
      @NotNull SMethod<T> method,
      @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }
}
public final class ContextMemberOperation_BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x3ecd7c84cde345deL,
          0x886c135ecc69b742L,
          0x6e6245e06b61646dL,
          "jetbrains.mps.lang.refactoring.structure.ContextMemberOperation");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<SNode> createType_id65fYhwGpPk$ =
      new SMethodBuilder<SNode>(new SJavaCompoundTypeImpl((Class<SNode>) ((Class) Object.class)))
          .name("createType")
          .modifiers(SModifiersImpl.create(12, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("65fYhwGpPk$")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(createType_id65fYhwGpPk$);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  /*package*/ ContextMemberOperation_BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @NotNull Object[] array) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }
}
public final class PrimitiveType__BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0xf3061a5392264cc5L,
          0xa443f952ceaf5816L,
          0x10f0ad8bde4L,
          "jetbrains.mps.baseLanguage.structure.PrimitiveType");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<String> getPresentation_idhEwIMiw =
      new SMethodBuilder<String>(new SJavaCompoundTypeImpl(String.class))
          .name("getPresentation")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("hEwIMiw")
          .registry(REGISTRY)
          .build();
  public static final SMethod<List<String>> getVariableSuffixes_idhEwIzNo =
      new SMethodBuilder<List<String>>(
              new SJavaCompoundTypeImpl((Class<List<String>>) ((Class) Object.class)))
          .name("getVariableSuffixes")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("hEwIzNo")
          .registry(REGISTRY)
          .build();
  public static final SMethod<String> getErasureSignature_idhEwIzNx =
      new SMethodBuilder<String>(new SJavaCompoundTypeImpl(String.class))
          .name("getErasureSignature")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("hEwIzNx")
          .registry(REGISTRY)
          .build();
  public static final SMethod<SNode> getErasure_idB1mAlA38Mq =
      new SMethodBuilder<SNode>(new SJavaCompoundTypeImpl((Class<SNode>) ((Class) Object.class)))
          .name("getErasure")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("B1mAlA38Mq")
          .registry(REGISTRY)
          .build();
  public static final SMethod<SNode> getJavaType_idhEwIzO1 =
      new SMethodBuilder<SNode>(new SJavaCompoundTypeImpl((Class<SNode>) ((Class) Object.class)))
          .name("getJavaType")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("hEwIzO1")
          .registry(REGISTRY)
          .build();

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(
          getPresentation_idhEwIMiw,
          getVariableSuffixes_idhEwIzNo,
          getErasureSignature_idhEwIzNx,
          getErasure_idB1mAlA38Mq,
          getJavaType_idhEwIzO1);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  /*package*/ static String getPresentation_idhEwIMiw(@NotNull SNode __thisNode__) {
    return SPropertyOperations.getString(
        SNodeOperations.getConceptDeclaration(__thisNode__),
        MetaAdapterFactory.getProperty(
            0xc72da2b97cce4447L,
            0x8389f407dc1158b7L,
            0x1103553c5ffL,
            0x46ab0ad5826c74caL,
            "conceptAlias"));
  }
  /*package*/ static List<String> getVariableSuffixes_idhEwIzNo(@NotNull SNode __thisNode__) {
    return ListSequence.fromListAndArray(
        new ArrayList<String>(),
        SPropertyOperations.getString(
                SNodeOperations.getConceptDeclaration(__thisNode__),
                MetaAdapterFactory.getProperty(
                    0xc72da2b97cce4447L,
                    0x8389f407dc1158b7L,
                    0x1103553c5ffL,
                    0x46ab0ad5826c74caL,
                    "conceptAlias"))
            .substring(0, 1));
  }
  /*package*/ static String getErasureSignature_idhEwIzNx(@NotNull SNode __thisNode__) {
    return SPropertyOperations.getString(
        SNodeOperations.getConceptDeclaration(__thisNode__),
        MetaAdapterFactory.getProperty(
            0xc72da2b97cce4447L,
            0x8389f407dc1158b7L,
            0x1103553c5ffL,
            0x46ab0ad5826c74caL,
            "conceptAlias"));
  }
  /*package*/ static SNode getErasure_idB1mAlA38Mq(@NotNull SNode __thisNode__) {
    return __thisNode__;
  }
  /*package*/ static SNode getJavaType_idhEwIzO1(@NotNull SNode __thisNode__) {
    return __thisNode__;
  }

  /*package*/ PrimitiveType__BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @Nullable Object[] parameters) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) ((String) getPresentation_idhEwIMiw(node));
      case 1:
        return (T) ((List<String>) getVariableSuffixes_idhEwIzNo(node));
      case 2:
        return (T) ((String) getErasureSignature_idhEwIzNx(node));
      case 3:
        return (T) ((SNode) getErasure_idB1mAlA38Mq(node));
      case 4:
        return (T) ((SNode) getJavaType_idhEwIzO1(node));
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept,
      @NotNull SMethod<T> method,
      @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }
}
public final class ConstraintFunctionParameter_childNode_BehaviorDescriptor
    extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x3f4bc5f5c6c14a28L,
          0x8b10c83066ffa4a1L,
          0x5d82bba5f0907509L,
          "jetbrains.mps.lang.constraints.structure.ConstraintFunctionParameter_childNode");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<Boolean> dontUseParameterObject_id1653mnvAgv$ =
      new SMethodBuilder<Boolean>(new SJavaCompoundTypeImpl(Boolean.TYPE))
          .name("dontUseParameterObject")
          .modifiers(SModifiersImpl.create(9, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("1653mnvAgv$")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<SNode> getType_id27DJnJtIQ9C =
      new SMethodBuilder<SNode>(new SJavaCompoundTypeImpl((Class<SNode>) ((Class) Object.class)))
          .name("getType")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("27DJnJtIQ9C")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(dontUseParameterObject_id1653mnvAgv$, getType_id27DJnJtIQ9C);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  private static Boolean dontUseParameterObject_id1653mnvAgv$(
      @NotNull SAbstractConcept __thisConcept__) {
    return true;
  }

  private static SNode getType_id27DJnJtIQ9C(@NotNull SNode __thisNode__) {
    return _quotation_createNode_qwy3hb_a0a1();
  }

  /*package*/ ConstraintFunctionParameter_childNode_BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @NotNull Object[] array) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 1:
        return (T) getType_id27DJnJtIQ9C(node);
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) dontUseParameterObject_id1653mnvAgv$(concept);
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }

  private static SNode _quotation_createNode_qwy3hb_a0a1() {
    PersistenceFacade facade = PersistenceFacade.getInstance();
    SNode quotedNode_1 = null;
    quotedNode_1 =
        SModelUtil_new.instantiateConceptDeclaration(
            MetaAdapterFactory.getConcept(
                0x7866978ea0f04cc7L,
                0x81bc4d213d9375e1L,
                0x108f968b3caL,
                "jetbrains.mps.lang.smodel.structure.SNodeType"),
            null,
            null,
            false);
    return quotedNode_1;
  }
}
public final class Node_GetContainingRoleOperation__BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x7866978ea0f04cc7L,
          0x81bc4d213d9375e1L,
          0x1b35e18a1a3b2c9aL,
          "jetbrains.mps.lang.smodel.structure.Node_GetContainingRoleOperation");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<Boolean> applicableToNode_id1653mnvAgrs =
      new SMethodBuilder<Boolean>(new SJavaCompoundTypeImpl(Boolean.TYPE))
          .name("applicableToNode")
          .modifiers(SModifiersImpl.create(9, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("1653mnvAgrs")
          .registry(REGISTRY)
          .build();
  public static final SMethod<Boolean> applicableToLink_id1653mnvAgvK =
      new SMethodBuilder<Boolean>(new SJavaCompoundTypeImpl(Boolean.TYPE))
          .name("applicableToLink")
          .modifiers(SModifiersImpl.create(9, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("1653mnvAgvK")
          .registry(REGISTRY)
          .build();

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(applicableToNode_id1653mnvAgrs, applicableToLink_id1653mnvAgvK);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  /*package*/ static boolean applicableToNode_id1653mnvAgrs(
      @NotNull SAbstractConcept __thisConcept__) {
    return true;
  }
  /*package*/ static boolean applicableToLink_id1653mnvAgvK(
      @NotNull SAbstractConcept __thisConcept__) {
    return true;
  }

  /*package*/ Node_GetContainingRoleOperation__BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @Nullable Object[] parameters) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept,
      @NotNull SMethod<T> method,
      @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) ((Boolean) applicableToNode_id1653mnvAgrs(concept));
      case 1:
        return (T) ((Boolean) applicableToLink_id1653mnvAgvK(concept));
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }
}
public final class ExtensionPointType__BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0xc0080a477e374558L,
          0xbee99ae18e690549L,
          0x2c10fa62142eb538L,
          "jetbrains.mps.lang.extension.structure.ExtensionPointType");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<String> getPresentation_idhEwIMiw =
      new SMethodBuilder<String>(new SJavaCompoundTypeImpl(String.class))
          .name("getPresentation")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("hEwIMiw")
          .registry(REGISTRY)
          .build();

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(getPresentation_idhEwIMiw);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  /*package*/ static String getPresentation_idhEwIMiw(@NotNull SNode __thisNode__) {
    return SPropertyOperations.getString(
            SNodeOperations.getConceptDeclaration(__thisNode__),
            MetaAdapterFactory.getProperty(
                0xc72da2b97cce4447L,
                0x8389f407dc1158b7L,
                0x1103553c5ffL,
                0x46ab0ad5826c74caL,
                "conceptAlias"))
        + "/"
        + SPropertyOperations.getString(
            SLinkOperations.getTarget(
                __thisNode__,
                MetaAdapterFactory.getReferenceLink(
                    0xc0080a477e374558L,
                    0xbee99ae18e690549L,
                    0x2c10fa62142eb538L,
                    0x2c10fa62142eb539L,
                    "extensionPoint")),
            MetaAdapterFactory.getProperty(
                0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name"))
        + "/";
  }

  /*package*/ ExtensionPointType__BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @Nullable Object[] parameters) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) ((String) getPresentation_idhEwIMiw(node));
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept,
      @NotNull SMethod<T> method,
      @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }
}
public final class ConstraintFunctionParameter_checkedNode__BehaviorDescriptor
    extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x3f4bc5f5c6c14a28L,
          0x8b10c83066ffa4a1L,
          0x297f56a5546902a8L,
          "jetbrains.mps.lang.constraints.structure.ConstraintFunctionParameter_checkedNode");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<Boolean> dontUseParameterObject_id1653mnvAgv$ =
      new SMethodBuilder<Boolean>(new SJavaCompoundTypeImpl(Boolean.TYPE))
          .name("dontUseParameterObject")
          .modifiers(SModifiersImpl.create(9, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("1653mnvAgv$")
          .registry(REGISTRY)
          .build();

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(dontUseParameterObject_id1653mnvAgv$);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  /*package*/ static boolean dontUseParameterObject_id1653mnvAgv$(
      @NotNull SAbstractConcept __thisConcept__) {
    return true;
  }

  /*package*/ ConstraintFunctionParameter_checkedNode__BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @Nullable Object[] parameters) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept,
      @NotNull SMethod<T> method,
      @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) ((Boolean) dontUseParameterObject_id1653mnvAgv$(concept));
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }
}
public final class AnonymousCellAnnotation__BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x8585453e6bfb4d80L,
          0x98deb16074f1d86cL,
          0x11e31babe12L,
          "jetbrains.mps.lang.test.structure.AnonymousCellAnnotation");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<Void> setupSelection_id5rZKa_fUiYP =
      new SMethodBuilder<Void>(new SJavaCompoundTypeImpl(Void.class))
          .name("setupSelection")
          .modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("5rZKa_fUiYP")
          .registry(REGISTRY)
          .build(
              SMethodBuilder.createJavaParameter(NodeEditorComponent.class, ""),
              SMethodBuilder.createJavaParameter((Class<SNode>) ((Class) Object.class), ""),
              SMethodBuilder.createJavaParameter(
                  (Class<Map<SNode, SNode>>) ((Class) Object.class), ""));
  public static final SMethod<Integer> getCaretPosition_id5rZKa_fUlry =
      new SMethodBuilder<Integer>(new SJavaCompoundTypeImpl(Integer.TYPE))
          .name("getCaretPosition")
          .modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("5rZKa_fUlry")
          .registry(REGISTRY)
          .build(SMethodBuilder.createJavaParameter(EditorCell_Label.class, ""));
  /*package*/ static final SMethod<Void> setupCaretAndSelection_id7TYU6fNl1yz =
      new SMethodBuilder<Void>(new SJavaCompoundTypeImpl(Void.class))
          .name("setupCaretAndSelection")
          .modifiers(SModifiersImpl.create(0, AccessPrivileges.PRIVATE))
          .concept(CONCEPT)
          .id("7TYU6fNl1yz")
          .registry(REGISTRY)
          .build(SMethodBuilder.createJavaParameter(EditorCell.class, ""));
  /*package*/ static final SMethod<EditorComponent> setupInspector_id4VoD2D0CSEA =
      new SMethodBuilder<EditorComponent>(new SJavaCompoundTypeImpl(EditorComponent.class))
          .name("setupInspector")
          .modifiers(SModifiersImpl.create(0, AccessPrivileges.PRIVATE))
          .concept(CONCEPT)
          .id("4VoD2D0CSEA")
          .registry(REGISTRY)
          .build(
              SMethodBuilder.createJavaParameter((Class<SNode>) ((Class) Object.class), ""),
              SMethodBuilder.createJavaParameter(NodeEditorComponent.class, ""));

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(
          setupSelection_id5rZKa_fUiYP,
          getCaretPosition_id5rZKa_fUlry,
          setupCaretAndSelection_id7TYU6fNl1yz,
          setupInspector_id4VoD2D0CSEA);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  /*package*/ static void setupSelection_id5rZKa_fUiYP(
      @NotNull final SNode __thisNode__,
      final NodeEditorComponent nodeEditorComponent,
      final SNode node,
      final Map<SNode, SNode> map) {
    final Wrappers._T<EditorComponent> editorComponent =
        new Wrappers._T<EditorComponent>(nodeEditorComponent);
    final Wrappers._T<EditorCell> cellWithId = new Wrappers._T<EditorCell>();
    ModelAccess.instance()
        .runReadAction(
            new Runnable() {
              public void run() {
                if (SPropertyOperations.getBoolean(
                    __thisNode__,
                    MetaAdapterFactory.getProperty(
                        0x8585453e6bfb4d80L,
                        0x98deb16074f1d86cL,
                        0x11e31babe12L,
                        0x1b73330fb1241e01L,
                        "isInInspector"))) {
                  editorComponent.value =
                      AnonymousCellAnnotation__BehaviorDescriptor.setupInspector_id4VoD2D0CSEA
                          .invoke(__thisNode__, node, nodeEditorComponent);
                }
                cellWithId.value =
                    editorComponent.value.findCellWithId(
                        node,
                        SPropertyOperations.getString(
                            __thisNode__,
                            MetaAdapterFactory.getProperty(
                                0x8585453e6bfb4d80L,
                                0x98deb16074f1d86cL,
                                0x11e31babe12L,
                                0x11e31babe13L,
                                "cellId")));
                if (cellWithId.value == null) {
                  throw new RuntimeException("No cell " + __thisNode__);
                }
                AnonymousCellAnnotation__BehaviorDescriptor.setupCaretAndSelection_id7TYU6fNl1yz
                    .invoke(__thisNode__, cellWithId.value);
              }
            });
    editorComponent.value.changeSelection(cellWithId.value);
    ModelAccess.instance()
        .runReadAction(
            new Runnable() {
              public void run() {
                if (SLinkOperations.getTarget(
                        __thisNode__,
                        MetaAdapterFactory.getReferenceLink(
                            0x8585453e6bfb4d80L,
                            0x98deb16074f1d86cL,
                            0x11e31babe12L,
                            0x1ad0cd452e1f9accL,
                            "nodeRangeSelectionStart"))
                    != null) {
                  SNode selectionStart =
                      MapSequence.fromMap(map)
                          .get(
                              SLinkOperations.getTarget(
                                  __thisNode__,
                                  MetaAdapterFactory.getReferenceLink(
                                      0x8585453e6bfb4d80L,
                                      0x98deb16074f1d86cL,
                                      0x11e31babe12L,
                                      0x1ad0cd452e1f9accL,
                                      "nodeRangeSelectionStart")));
                  SNode selectionEnd =
                      MapSequence.fromMap(map)
                          .get(
                              SLinkOperations.getTarget(
                                  __thisNode__,
                                  MetaAdapterFactory.getReferenceLink(
                                      0x8585453e6bfb4d80L,
                                      0x98deb16074f1d86cL,
                                      0x11e31babe12L,
                                      0x1ad0cd452e1f9acdL,
                                      "nodeRangeSelectionEnd")));
                  SelectionManager selectionManager = editorComponent.value.getSelectionManager();
                  selectionManager.pushSelection(
                      selectionManager.createRangeSelection(selectionStart, selectionEnd));
                }
              }
            });
  }
  /*package*/ static int getCaretPosition_id5rZKa_fUlry(
      @NotNull SNode __thisNode__, EditorCell_Label label) {
    if (SPropertyOperations.getBoolean(
        __thisNode__,
        MetaAdapterFactory.getProperty(
            0x8585453e6bfb4d80L,
            0x98deb16074f1d86cL,
            0x11e31babe12L,
            0x11e3fde6f41L,
            "isLastPosition"))) {
      return label.getText().length();
    } else {
      return SPropertyOperations.getInteger(
          __thisNode__,
          MetaAdapterFactory.getProperty(
              0x8585453e6bfb4d80L,
              0x98deb16074f1d86cL,
              0x11e31babe12L,
              0x11e31babe14L,
              "caretPosition"));
    }
  }
  /*package*/ static void setupCaretAndSelection_id7TYU6fNl1yz(
      @NotNull SNode __thisNode__, EditorCell cellWithId) {
    if (cellWithId instanceof EditorCell_Label) {
      EditorCell_Label label = (EditorCell_Label) cellWithId;
      label.setCaretPosition(
          ((int)
              AnonymousCellAnnotation__BehaviorDescriptor.getCaretPosition_id5rZKa_fUlry.invoke(
                  __thisNode__, label)));
      label.setSelectionStart(
          SPropertyOperations.getInteger(
              __thisNode__,
              MetaAdapterFactory.getProperty(
                  0x8585453e6bfb4d80L,
                  0x98deb16074f1d86cL,
                  0x11e31babe12L,
                  0x56ffc0a94fe5fc33L,
                  "selectionStart")));
      label.setSelectionEnd(
          SPropertyOperations.getInteger(
              __thisNode__,
              MetaAdapterFactory.getProperty(
                  0x8585453e6bfb4d80L,
                  0x98deb16074f1d86cL,
                  0x11e31babe12L,
                  0x56ffc0a94fe5fc35L,
                  "selectionEnd")));
    }
  }
  /*package*/ static EditorComponent setupInspector_id4VoD2D0CSEA(
      @NotNull SNode __thisNode__, SNode node, NodeEditorComponent nodeEditorComponent) {
    SNode nodeToSelect = node;
    while (nodeToSelect != null && nodeEditorComponent.findNodeCell(nodeToSelect) == null) {
      nodeToSelect = SNodeOperations.getParent(nodeToSelect);
    }
    nodeEditorComponent.selectNode(nodeToSelect);
    return nodeEditorComponent.getInspector();
  }

  /*package*/ AnonymousCellAnnotation__BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @Nullable Object[] parameters) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        setupSelection_id5rZKa_fUiYP(
            node,
            (NodeEditorComponent) parameters[0],
            (SNode) parameters[1],
            (Map<SNode, SNode>) parameters[2]);
        return null;
      case 1:
        return (T)
            ((Integer) getCaretPosition_id5rZKa_fUlry(node, (EditorCell_Label) parameters[0]));
      case 2:
        setupCaretAndSelection_id7TYU6fNl1yz(node, (EditorCell) parameters[0]);
        return null;
      case 3:
        return (T)
            ((EditorComponent)
                setupInspector_id4VoD2D0CSEA(
                    node, (SNode) parameters[0], (NodeEditorComponent) parameters[1]));
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept,
      @NotNull SMethod<T> method,
      @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }
}
public final class QueryFunction_IsMethodCurrent__BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x18bc659203a64e29L,
          0xa83a7ff23bde13baL,
          0x5917043ba8fab771L,
          "jetbrains.mps.lang.editor.structure.QueryFunction_IsMethodCurrent");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<List<SNode>> getApplicableConceptFunctionParameter_id2D1PBM_bxJg =
      new SMethodBuilder<List<SNode>>(
              new SJavaCompoundTypeImpl((Class<List<SNode>>) ((Class) Object.class)))
          .name("getApplicableConceptFunctionParameter")
          .modifiers(SModifiersImpl.create(9, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("2D1PBM_bxJg")
          .registry(REGISTRY)
          .build();
  public static final SMethod<SNode> getExpectedReturnType_idhEwIGRD =
      new SMethodBuilder<SNode>(new SJavaCompoundTypeImpl((Class<SNode>) ((Class) Object.class)))
          .name("getExpectedReturnType")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("hEwIGRD")
          .registry(REGISTRY)
          .build();

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(
          getApplicableConceptFunctionParameter_id2D1PBM_bxJg, getExpectedReturnType_idhEwIGRD);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  /*package*/ static List<SNode> getApplicableConceptFunctionParameter_id2D1PBM_bxJg(
      @NotNull SAbstractConcept __thisConcept__) {
    List<SNode> result =
        ConceptFunction__BehaviorDescriptor.getApplicableConceptFunctionParameter_id2D1PBM_bxJg
            .invokeSpecial(__thisConcept__);
    ListSequence.fromList(result)
        .addElement(
            SNodeOperations.getNode(
                "r:00000000-0000-4000-0000-011c8959029e(jetbrains.mps.lang.editor.structure)",
                "4203201205844553978"));
    ListSequence.fromList(result)
        .addElement(
            SNodeOperations.getNode(
                "r:00000000-0000-4000-0000-011c8959029e(jetbrains.mps.lang.editor.structure)",
                "671290755174094691"));
    ListSequence.fromList(result)
        .addElement(
            SNodeOperations.getNode(
                "r:00000000-0000-4000-0000-011c8959029e(jetbrains.mps.lang.editor.structure)",
                "1161622981231"));
    return result;
  }
  /*package*/ static SNode getExpectedReturnType_idhEwIGRD(@NotNull SNode __thisNode__) {
    return _quotation_createNode_a2589d_a0a1();
  }

  /*package*/ QueryFunction_IsMethodCurrent__BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @Nullable Object[] parameters) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 1:
        return (T) ((SNode) getExpectedReturnType_idhEwIGRD(node));
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept,
      @NotNull SMethod<T> method,
      @Nullable Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) ((List<SNode>) getApplicableConceptFunctionParameter_id2D1PBM_bxJg(concept));
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }

  private static SNode _quotation_createNode_a2589d_a0a1() {
    PersistenceFacade facade = PersistenceFacade.getInstance();
    SNode quotedNode_1 = null;
    quotedNode_1 =
        SModelUtil_new.instantiateConceptDeclaration(
            MetaAdapterFactory.getConcept(
                0xf3061a5392264cc5L,
                0xa443f952ceaf5816L,
                0xf940d6513eL,
                "jetbrains.mps.baseLanguage.structure.BooleanType"),
            null,
            null,
            false);
    return quotedNode_1;
  }
}
public final class ConceptFunctionParameter_MPSProject_BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x28f9e4973b424291L,
          0xaeba0a1039153ab1L,
          0x118707cdfb8L,
          "jetbrains.mps.lang.plugin.structure.ConceptFunctionParameter_MPSProject");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<SNode> getType_id27DJnJtIQ9C =
      new SMethodBuilder<SNode>(new SJavaCompoundTypeImpl((Class<SNode>) ((Class) Object.class)))
          .name("getType")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("27DJnJtIQ9C")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(getType_id27DJnJtIQ9C);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  private static SNode getType_id27DJnJtIQ9C(@NotNull SNode __thisNode__) {
    return _quotation_createNode_mrte6h_a0a0();
  }

  /*package*/ ConceptFunctionParameter_MPSProject_BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @NotNull Object[] array) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) getType_id27DJnJtIQ9C(node);
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }

  private static SNode _quotation_createNode_mrte6h_a0a0() {
    PersistenceFacade facade = PersistenceFacade.getInstance();
    SNode quotedNode_1 = null;
    quotedNode_1 =
        SModelUtil_new.instantiateConceptDeclaration(
            MetaAdapterFactory.getConcept(
                0xf3061a5392264cc5L,
                0xa443f952ceaf5816L,
                0x101de48bf9eL,
                "jetbrains.mps.baseLanguage.structure.ClassifierType"),
            null,
            null,
            false);
    quotedNode_1.setReference(
        MetaAdapterFactory.getReferenceLink(
            0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x101de48bf9eL, 0x101de490babL, "classifier"),
        SReference.create(
            MetaAdapterFactory.getReferenceLink(
                0xf3061a5392264cc5L,
                0xa443f952ceaf5816L,
                0x101de48bf9eL,
                0x101de490babL,
                "classifier"),
            quotedNode_1,
            facade.createModelReference(
                "742f6602-5a2f-4313-aa6e-ae1cd4ffdc61/java:jetbrains.mps.project(MPS.Platform/)"),
            facade.createNodeId("~MPSProject")));
    return quotedNode_1;
  }
}
public final class ActionGroupDeclaration_BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x28f9e4973b424291L,
          0xaeba0a1039153ab1L,
          0x1181da058d2L,
          "jetbrains.mps.lang.plugin.structure.ActionGroupDeclaration");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<String> getGroupPrefix_idhEwJa7y =
      new SMethodBuilder<String>(new SJavaCompoundTypeImpl(String.class))
          .name("getGroupPrefix")
          .modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("hEwJa7y")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<String> getGeneratedName_idhEwJa82 =
      new SMethodBuilder<String>(new SJavaCompoundTypeImpl(String.class))
          .name("getGeneratedName")
          .modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("hEwJa82")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<String> getGeneratedClassFQName_idhEwJa8g =
      new SMethodBuilder<String>(new SJavaCompoundTypeImpl(String.class))
          .name("getGeneratedClassFQName")
          .modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("hEwJa8g")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<SNode> createType_idhEwJimy =
      new SMethodBuilder<SNode>(new SJavaCompoundTypeImpl((Class<SNode>) ((Class) Object.class)))
          .name("createType")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("hEwJimy")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<PropertyReference> getPropertyToCheck_id4cWf37B8oYh =
      new SMethodBuilder<PropertyReference>(
              new SJavaCompoundTypeImpl((Class<PropertyReference>) ((Class) Object.class)))
          .name("getPropertyToCheck")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("4cWf37B8oYh")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(
          getGroupPrefix_idhEwJa7y,
          getGeneratedName_idhEwJa82,
          getGeneratedClassFQName_idhEwJa8g,
          createType_idhEwJimy,
          getPropertyToCheck_id4cWf37B8oYh);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  private static String getGroupPrefix_idhEwJa7y(@NotNull SNode __thisNode__) {
    String prefix = "";
    SNode parentGroup =
        SNodeOperations.getNodeAncestor(
            __thisNode__,
            MetaAdapterFactory.getConcept(
                0x28f9e4973b424291L,
                0xaeba0a1039153ab1L,
                0x1181da058d2L,
                "jetbrains.mps.lang.plugin.structure.ActionGroupDeclaration"),
            false,
            false);
    if (parentGroup != null) {
      prefix =
          ActionGroupDeclaration_BehaviorDescriptor.getGroupPrefix_idhEwJa7y.invoke(parentGroup)
              + SPropertyOperations.getString(
                  parentGroup,
                  MetaAdapterFactory.getProperty(
                      0xceab519525ea4f22L,
                      0x9b92103b95ca8c0cL,
                      0x110396eaaa4L,
                      0x110396ec041L,
                      "name"));
    }
    return prefix;
  }

  private static String getGeneratedName_idhEwJa82(@NotNull SNode __thisNode__) {
    return ActionGroupDeclaration_BehaviorDescriptor.getGroupPrefix_idhEwJa7y.invoke(__thisNode__)
        + NameUtil.toValidIdentifier(
            SPropertyOperations.getString(
                __thisNode__,
                MetaAdapterFactory.getProperty(
                    0xceab519525ea4f22L,
                    0x9b92103b95ca8c0cL,
                    0x110396eaaa4L,
                    0x110396ec041L,
                    "name")))
        + "_ActionGroup";
  }

  private static String getGeneratedClassFQName_idhEwJa8g(@NotNull SNode __thisNode__) {
    return jetbrains.mps.util.SNodeOperations.getModelLongName(
            SNodeOperations.getModel(__thisNode__))
        + "."
        + ActionGroupDeclaration_BehaviorDescriptor.getGeneratedName_idhEwJa82.invoke(__thisNode__);
  }

  private static SNode createType_idhEwJimy(@NotNull SNode __thisNode__) {
    SNode type =
        SConceptOperations.createNewNode(
            SNodeOperations.asInstanceConcept(
                MetaAdapterFactory.getConcept(
                    0x28f9e4973b424291L,
                    0xaeba0a1039153ab1L,
                    0x119240f9168L,
                    "jetbrains.mps.lang.plugin.structure.GroupType")));
    SLinkOperations.setTarget(
        type,
        MetaAdapterFactory.getReferenceLink(
            0x28f9e4973b424291L,
            0xaeba0a1039153ab1L,
            0x119240f9168L,
            0x119240f916aL,
            "actionGroup"),
        __thisNode__);
    return type;
  }

  private static PropertyReference getPropertyToCheck_id4cWf37B8oYh(@NotNull SNode __thisNode__) {
    return new PropertyReference(__thisNode__, "caption");
  }

  /*package*/ ActionGroupDeclaration_BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @NotNull Object[] array) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) getGroupPrefix_idhEwJa7y(node);
      case 1:
        return (T) getGeneratedName_idhEwJa82(node);
      case 2:
        return (T) getGeneratedClassFQName_idhEwJa8g(node);
      case 3:
        return (T) createType_idhEwJimy(node);
      case 4:
        return (T) getPropertyToCheck_id4cWf37B8oYh(node);
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }
}
public final class InlineEditorComponent_BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x18bc659203a64e29L,
          0xa83a7ff23bde13baL,
          0xfd5cee772bL,
          "jetbrains.mps.lang.editor.structure.InlineEditorComponent");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<SNode> getConceptDeclaration_id67EYkym$wx3 =
      new SMethodBuilder<SNode>(new SJavaCompoundTypeImpl((Class<SNode>) ((Class) Object.class)))
          .name("getConceptDeclaration")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("67EYkym$wx3")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(getConceptDeclaration_id67EYkym$wx3);

  private static void ___init___(@NotNull SNode __thisNode__) {}

  private static SNode getConceptDeclaration_id67EYkym$wx3(@NotNull SNode __thisNode__) {
    return SLinkOperations.getTarget(
        SLinkOperations.getTarget(
            SNodeOperations.cast(
                SNodeOperations.getParent(__thisNode__),
                MetaAdapterFactory.getConcept(
                    0x18bc659203a64e29L,
                    0xa83a7ff23bde13baL,
                    0xfd52a2c922L,
                    "jetbrains.mps.lang.editor.structure.CellModel_RefCell")),
            MetaAdapterFactory.getReferenceLink(
                0x18bc659203a64e29L,
                0xa83a7ff23bde13baL,
                0x10964446123L,
                0x10973779681L,
                "relationDeclaration")),
        MetaAdapterFactory.getReferenceLink(
            0xc72da2b97cce4447L, 0x8389f407dc1158b7L, 0xf979bd086aL, 0xf98055fef0L, "target"));
  }

  /*package*/ InlineEditorComponent_BehaviorDescriptor() {
    super(REGISTRY);
  }

  @Override
  protected void initNode(
      @NotNull SNode node, @NotNull SConstructor constructor, @NotNull Object[] array) {
    ___init___(node);
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SNode node, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      case 0:
        return (T) getConceptDeclaration_id67EYkym$wx3(node);
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @Override
  protected <T> T invokeSpecial0(
      @NotNull SAbstractConcept concept, @NotNull SMethod<T> method, @NotNull Object[] parameters) {
    int methodIndex = BH_METHODS.indexOf(method);
    if (methodIndex < 0) {
      throw new BHMethodNotFoundException(this, method);
    }
    switch (methodIndex) {
      default:
        throw new BHMethodNotFoundException(this, method);
    }
  }

  @NotNull
  @Override
  public List<SMethod<?>> getDeclaredMethods() {
    return BH_METHODS;
  }

  @NotNull
  @Override
  public SAbstractConcept getConcept() {
    return CONCEPT;
  }
}