public final class VariableConverterItem_ApplicableBlock_BehaviorDescriptor
    extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x7a5dda6291404668L,
          0xab76d5ed1746f2b2L,
          0x11e0740f5fbL,
          "jetbrains.mps.lang.typesystem.structure.VariableConverterItem_ApplicableBlock");
  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(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(
          getApplicableConceptFunctionParameter_id2D1PBM_bxJg, getExpectedReturnType_idhEwIGRD);

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

  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-011c895902b4(jetbrains.mps.lang.typesystem.structure)",
                "1228482485159"));
    ListSequence.fromList(result)
        .addElement(
            SNodeOperations.getNode(
                "r:00000000-0000-4000-0000-011c895902b4(jetbrains.mps.lang.typesystem.structure)",
                "1228487523202"));
    ListSequence.fromList(result)
        .addElement(
            SNodeOperations.getNode(
                "r:00000000-0000-4000-0000-011c895902b4(jetbrains.mps.lang.typesystem.structure)",
                "1228487409934"));
    ListSequence.fromList(result)
        .addElement(
            SNodeOperations.getNode(
                "r:00000000-0000-4000-0000-011c895902b4(jetbrains.mps.lang.typesystem.structure)",
                "1228487445949"));
    return result;
  }

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

  /*package*/ VariableConverterItem_ApplicableBlock_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) 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) 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_wwmv85_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 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 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 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 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 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 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 INodeWithReference_BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getInterfaceConcept(
          0xde1ad86d6e504a02L,
          0xb306d4d17f64c375L,
          0x36ac6f29ae8c1fb5L,
          "jetbrains.mps.console.base.structure.INodeWithReference");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<Void> execute_id7oNS25df64x =
      new SMethodBuilder<Void>(new SJavaCompoundTypeImpl(Void.class))
          .name("execute")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("7oNS25df64x")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses(Project.class)));
  public static final SMethod<Boolean> canExecute_id2QdC0h7dh1h =
      new SMethodBuilder<Boolean>(new SJavaCompoundTypeImpl(Boolean.TYPE))
          .name("canExecute")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("2QdC0h7dh1h")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<String> getTextWhenBroken_idigjXyuNrou =
      new SMethodBuilder<String>(new SJavaCompoundTypeImpl(String.class))
          .name("getTextWhenBroken")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("igjXyuNrou")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(
          execute_id7oNS25df64x, canExecute_id2QdC0h7dh1h, getTextWhenBroken_idigjXyuNrou);

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

  private static void execute_id7oNS25df64x(@NotNull SNode __thisNode__, Project project) {
    SNode targetNode =
        SLinkOperations.getTarget(
            __thisNode__,
            MetaAdapterFactory.getReferenceLink(
                0xde1ad86d6e504a02L,
                0xb306d4d17f64c375L,
                0x36ac6f29ae8c1fb5L,
                0x4904fd89e74fc6fL,
                "target"));
    jetbrains.mps.project.Project mpsProject = ProjectHelper.toMPSProject(project);
    if (mpsProject == null) {
      return;
    }
    NavigationSupport.getInstance()
        .openNode(mpsProject, targetNode, true, !(SNodeOperations.isRoot(targetNode)));
  }

  private static Boolean canExecute_id2QdC0h7dh1h(@NotNull SNode __thisNode__) {
    return SLinkOperations.getTarget(
            __thisNode__,
            MetaAdapterFactory.getReferenceLink(
                0xde1ad86d6e504a02L,
                0xb306d4d17f64c375L,
                0x36ac6f29ae8c1fb5L,
                0x4904fd89e74fc6fL,
                "target"))
        != null;
  }

  private static String getTextWhenBroken_idigjXyuNrou(@NotNull SNode __thisNode__) {
    return SPropertyOperations.getString(
            __thisNode__,
            MetaAdapterFactory.getProperty(
                0xde1ad86d6e504a02L,
                0xb306d4d17f64c375L,
                0x36ac6f29ae8c1fb5L,
                0x4904fd89e75e1c4L,
                "referencePresentation"))
        + " (deleted node)";
  }

  /*package*/ INodeWithReference_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:
        execute_id7oNS25df64x(node, (Project) parameters[0]);
        return null;
      case 1:
        return (T) canExecute_id2QdC0h7dh1h(node);
      case 2:
        return (T) getTextWhenBroken_idigjXyuNrou(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 BwfPathDeclaration_BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x698a8d22a10447a0L,
          0xba8d10e3ec237f13L,
          0x5c3f3e2c1cef4c10L,
          "jetbrains.mps.build.workflow.structure.BwfPathDeclaration");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<String> getPathId_id5KZfyKsWnkn =
      new SMethodBuilder<String>(new SJavaCompoundTypeImpl(String.class))
          .name("getPathId")
          .modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("5KZfyKsWnkn")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<Integer> getPriority_id1Mjrj7j4T5I =
      new SMethodBuilder<Integer>(new SJavaCompoundTypeImpl(Integer.TYPE))
          .name("getPriority")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("1Mjrj7j4T5I")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));

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

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

  private static String getPathId_id5KZfyKsWnkn(@NotNull SNode __thisNode__) {
    return "path."
        + SPropertyOperations.getString(
            __thisNode__,
            MetaAdapterFactory.getProperty(
                0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name"));
  }

  private static Integer getPriority_id1Mjrj7j4T5I(@NotNull SNode __thisNode__) {
    return 40;
  }

  /*package*/ BwfPathDeclaration_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) getPathId_id5KZfyKsWnkn(node);
      case 1:
        return (T) getPriority_id1Mjrj7j4T5I(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 H_BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x4239359f64574d2aL, 0xb1e014d3f948db39L, 0x3a674fdfabfcc7faL, "BHL7.structure.H");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<Integer> foo_id3DBjXYFZcwm =
      new SMethodBuilder<Integer>(new SJavaCompoundTypeImpl(Integer.TYPE))
          .name("foo")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("3DBjXYFZcwm")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<Integer> foo_id3DBjXYFZcwx =
      new SMethodBuilder<Integer>(new SJavaCompoundTypeImpl(Integer.TYPE))
          .name("foo")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("3DBjXYFZcwx")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));

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

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

  private static Integer foo_id3DBjXYFZcwm(@NotNull SNode __thisNode__) {
    return TestResults.DEFAULT_RETURN_VALUE;
  }

  private static Integer foo_id3DBjXYFZcwx(@NotNull SNode __thisNode__) {
    return TestResults.DEFAULT_RETURN_VALUE + 1;
  }

  /*package*/ H_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) foo_id3DBjXYFZcwm(node);
      case 1:
        return (T) foo_id3DBjXYFZcwx(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 AbstractTextGenDeclaration_BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0xb83431fe5c8f40bcL,
          0x8a3665e25f4dd253L,
          0x11f60f06a49L,
          "jetbrains.mps.lang.textGen.structure.AbstractTextGenDeclaration");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

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

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

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

  private static List<SNode> getAvailableOperations_idhXYHpEa(@NotNull SNode __thisNode__) {
    return null;
  }

  /*package*/ AbstractTextGenDeclaration_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) getAvailableOperations_idhXYHpEa(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 TemplateFunctionParameter_sourceNode_BehaviorDescriptor
    extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0xb401a68083254110L,
          0x8fd384331ff25befL,
          0x10fc0b471fcL,
          "jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<Boolean> needConceptFunction_idhZKliUO =
      new SMethodBuilder<Boolean>(new SJavaCompoundTypeImpl(Boolean.TYPE))
          .name("needConceptFunction")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("hZKliUO")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));

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

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

  private static Boolean needConceptFunction_idhZKliUO(@NotNull SNode __thisNode__) {
    // we could use this cf parameter in ITemplateCall argument expressions
    return (SNodeOperations.getNodeAncestor(
            __thisNode__,
            MetaAdapterFactory.getInterfaceConcept(
                0xb401a68083254110L,
                0x8fd384331ff25befL,
                0x17e941d108ce3120L,
                "jetbrains.mps.lang.generator.structure.ITemplateCall"),
            false,
            false)
        == null);
  }

  /*package*/ TemplateFunctionParameter_sourceNode_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) needConceptFunction_idhZKliUO(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 ScopesTest_BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x8585453e6bfb4d80L,
          0x98deb16074f1d86cL,
          0x7181d929c720809L,
          "jetbrains.mps.lang.test.structure.ScopesTest");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<SReference> getCheckingReference_id4IvydoGvimX =
      new SMethodBuilder<SReference>(new SJavaCompoundTypeImpl(SReference.class))
          .name("getCheckingReference")
          .modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("4IvydoGvimX")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<Boolean> isSimple_id4IvydoGvpbr =
      new SMethodBuilder<Boolean>(new SJavaCompoundTypeImpl(Boolean.TYPE))
          .name("isSimple")
          .modifiers(SModifiersImpl.create(1, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("4IvydoGvpbr")
          .registry(REGISTRY)
          .build(
              SParameterImpl.fromList(
                  SJavaCompoundTypeImpl.fromClasses((Class<SNode>) ((Class) Object.class))));
  public static final SMethod<Boolean> isApplicable_id4IvydoGviup =
      new SMethodBuilder<Boolean>(new SJavaCompoundTypeImpl(Boolean.TYPE))
          .name("isApplicable")
          .modifiers(SModifiersImpl.create(1, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("4IvydoGviup")
          .registry(REGISTRY)
          .build(
              SParameterImpl.fromList(
                  SJavaCompoundTypeImpl.fromClasses((Class<SNode>) ((Class) Object.class))));

  private static final List<SMethod<?>> BH_METHODS =
      Arrays.<SMethod<?>>asList(
          getCheckingReference_id4IvydoGvimX, isSimple_id4IvydoGvpbr, isApplicable_id4IvydoGviup);

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

  private static SReference getCheckingReference_id4IvydoGvimX(@NotNull SNode __thisNode__) {
    if (SLinkOperations.getTarget(
            __thisNode__,
            MetaAdapterFactory.getReferenceLink(
                0x8585453e6bfb4d80L,
                0x98deb16074f1d86cL,
                0x7181d929c720809L,
                0x4b9f88d62c795596L,
                "checkingReference"))
        == null) {
      return ((SNode) SNodeOperations.getParent(__thisNode__)).getReferences().iterator().next();
    }
    for (SReference reference :
        Sequence.fromIterable(
            SNodeOperations.getReferences(SNodeOperations.getParent(__thisNode__)))) {
      if (SLinkOperations.getTargetNode(reference)
          == SLinkOperations.getTarget(
              __thisNode__,
              MetaAdapterFactory.getReferenceLink(
                  0x8585453e6bfb4d80L,
                  0x98deb16074f1d86cL,
                  0x7181d929c720809L,
                  0x4b9f88d62c795596L,
                  "checkingReference"))) {
        return (jetbrains.mps.smodel.SReference) reference;
      }
    }
    return null;
  }

  private static Boolean isSimple_id4IvydoGvpbr(
      @NotNull SAbstractConcept __thisConcept__, SNode node) {
    return Sequence.fromIterable(SNodeOperations.getReferences(node)).count() == 1;
  }

  private static Boolean isApplicable_id4IvydoGviup(
      @NotNull SAbstractConcept __thisConcept__, SNode node) {
    return Sequence.fromIterable(SNodeOperations.getReferences(node)).isNotEmpty()
        && (AttributeOperations.getAttribute(
                node,
                new IAttributeDescriptor.NodeAttribute(
                    MetaAdapterFactory.getConcept(
                        0x8585453e6bfb4d80L,
                        0x98deb16074f1d86cL,
                        0x7181d929c720809L,
                        "jetbrains.mps.lang.test.structure.ScopesTest")))
            == null)
        && !(SNodeOperations.isInstanceOf(
            node,
            MetaAdapterFactory.getConcept(
                0x8585453e6bfb4d80L,
                0x98deb16074f1d86cL,
                0x7181d929c720809L,
                "jetbrains.mps.lang.test.structure.ScopesTest")));
  }

  /*package*/ ScopesTest_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) getCheckingReference_id4IvydoGvimX(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 1:
        return (T) isSimple_id4IvydoGvpbr(concept, (SNode) parameters[0]);
      case 2:
        return (T) isApplicable_id4IvydoGviup(concept, (SNode) parameters[0]);
      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 Component_BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x7a6f7ef73988464bL,
          0x8cc51182671c136eL,
          0x4ed97160b0a7fa2aL,
          "jetbrains.mps.samples.languagePatterns.Basic.structure.Component");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<String> fullName_id4Vpsm2KEoLo =
      new SMethodBuilder<String>(new SJavaCompoundTypeImpl(String.class))
          .name("fullName")
          .modifiers(SModifiersImpl.create(0, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("4Vpsm2KEoLo")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));

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

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

  private static String fullName_id4Vpsm2KEoLo(@NotNull SNode __thisNode__) {
    return SPropertyOperations.getString(
            SNodeOperations.as(
                SNodeOperations.getParent(__thisNode__),
                MetaAdapterFactory.getInterfaceConcept(
                    0xceab519525ea4f22L,
                    0x9b92103b95ca8c0cL,
                    0x110396eaaa4L,
                    "jetbrains.mps.lang.core.structure.INamedConcept")),
            MetaAdapterFactory.getProperty(
                0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name"))
        + "->"
        + SPropertyOperations.getString(
            __thisNode__,
            MetaAdapterFactory.getProperty(
                0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name"));
  }

  /*package*/ Component_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) fullName_id4Vpsm2KEoLo(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 CellMenuPart_Generic_Item_Handler_BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x18bc659203a64e29L,
          0xa83a7ff23bde13baL,
          0x10f58b90423L,
          "jetbrains.mps.lang.editor.structure.CellMenuPart_Generic_Item_Handler");
  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(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));

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

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

  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-011c8959029e(jetbrains.mps.lang.editor.structure)",
                "1163613822479"));
    ListSequence.fromList(result)
        .addElement(
            SNodeOperations.getNode(
                "r:00000000-0000-4000-0000-011c895902bc(jetbrains.mps.lang.sharedConcepts.structure)",
                "1161622665029"));
    ListSequence.fromList(result)
        .addElement(
            SNodeOperations.getNode(
                "r:00000000-0000-4000-0000-011c8959029e(jetbrains.mps.lang.editor.structure)",
                "1161622981231"));
    ListSequence.fromList(result)
        .addElement(
            SNodeOperations.getNode(
                "r:00000000-0000-4000-0000-011c895902bc(jetbrains.mps.lang.sharedConcepts.structure)",
                "1161622753914"));
    return result;
  }

  /*package*/ CellMenuPart_Generic_Item_Handler_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) {
      case 0:
        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;
  }
}
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 HTMLElement_BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0xf280165065d5424eL,
          0xbb1b463a8781b786L,
          0x5bc4aa08e154b399L,
          "jetbrains.mps.baseLanguage.javadoc.structure.HTMLElement");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  public static final SMethod<NodeCaretPair> smartDelete_id7PYAiugbmRz =
      new SMethodBuilder<NodeCaretPair>(new SJavaCompoundTypeImpl(NodeCaretPair.class))
          .name("smartDelete")
          .modifiers(SModifiersImpl.create(8, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("7PYAiugbmRz")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses(Boolean.TYPE)));

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

  private static void ___init___(@NotNull SNode __thisNode__) {
    SLinkOperations.addNewChild(
        __thisNode__,
        MetaAdapterFactory.getContainmentLink(
            0xf280165065d5424eL,
            0xbb1b463a8781b786L,
            0x5bc4aa08e154b399L,
            0x5bc4aa08e154b39bL,
            "line"),
        SNodeOperations.asInstanceConcept(
            MetaAdapterFactory.getConcept(
                0xf280165065d5424eL,
                0xbb1b463a8781b786L,
                0x757ba20a4c87f96cL,
                "jetbrains.mps.baseLanguage.javadoc.structure.CommentLine")));
  }

  private static NodeCaretPair smartDelete_id7PYAiugbmRz(
      @NotNull SNode __thisNode__, boolean isBeginning) {
    SNode line =
        SNodeOperations.cast(
            SNodeOperations.getParent(__thisNode__),
            MetaAdapterFactory.getConcept(
                0xf280165065d5424eL,
                0xbb1b463a8781b786L,
                0x757ba20a4c87f96cL,
                "jetbrains.mps.baseLanguage.javadoc.structure.CommentLine"));
    int index = SNodeOperations.getIndexInParent(__thisNode__);
    Iterable<SNode> lines =
        SLinkOperations.getChildren(
            __thisNode__,
            MetaAdapterFactory.getContainmentLink(
                0xf280165065d5424eL,
                0xbb1b463a8781b786L,
                0x5bc4aa08e154b399L,
                0x5bc4aa08e154b39bL,
                "line"));

    SNode nodeToSelect = null;
    int caret = -1;

    if (Sequence.fromIterable(lines).isEmpty()) {
      SNode prev = SNodeOperations.getPrevSibling(__thisNode__);
      if (isNotEmptyString(
          SPropertyOperations.getString(
              SNodeOperations.cast(
                  prev,
                  MetaAdapterFactory.getConcept(
                      0xf280165065d5424eL,
                      0xbb1b463a8781b786L,
                      0x7c7f5b2f31990287L,
                      "jetbrains.mps.baseLanguage.javadoc.structure.TextCommentLinePart")),
              MetaAdapterFactory.getProperty(
                  0xf280165065d5424eL,
                  0xbb1b463a8781b786L,
                  0x7c7f5b2f31990287L,
                  0x7c7f5b2f31990288L,
                  "text")))) {
        caret =
            SPropertyOperations.getString(
                    SNodeOperations.cast(
                        prev,
                        MetaAdapterFactory.getConcept(
                            0xf280165065d5424eL,
                            0xbb1b463a8781b786L,
                            0x7c7f5b2f31990287L,
                            "jetbrains.mps.baseLanguage.javadoc.structure.TextCommentLinePart")),
                    MetaAdapterFactory.getProperty(
                        0xf280165065d5424eL,
                        0xbb1b463a8781b786L,
                        0x7c7f5b2f31990287L,
                        0x7c7f5b2f31990288L,
                        "text"))
                .length();
      }
      SNodeOperations.deleteNode(__thisNode__);
      CommentLine_BehaviorDescriptor.tryMergeToRight_idooaTF_3fF3.invoke(line, index - 1);
      return new NodeCaretPair(prev, caret);
    } else {
      //  Merging first line
      for (SNode part :
          ListSequence.fromList(
              SLinkOperations.getChildren(
                  ListSequence.fromList(
                          SLinkOperations.getChildren(
                              __thisNode__,
                              MetaAdapterFactory.getContainmentLink(
                                  0xf280165065d5424eL,
                                  0xbb1b463a8781b786L,
                                  0x5bc4aa08e154b399L,
                                  0x5bc4aa08e154b39bL,
                                  "line")))
                      .first(),
                  MetaAdapterFactory.getContainmentLink(
                      0xf280165065d5424eL,
                      0xbb1b463a8781b786L,
                      0x757ba20a4c87f96cL,
                      0x7c7f5b2f3199028dL,
                      "part")))) {
        SNodeOperations.insertPrevSiblingChild(__thisNode__, part);
      }
      SNodeOperations.deleteNode(
          ListSequence.fromList(
                  SLinkOperations.getChildren(
                      __thisNode__,
                      MetaAdapterFactory.getContainmentLink(
                          0xf280165065d5424eL,
                          0xbb1b463a8781b786L,
                          0x5bc4aa08e154b399L,
                          0x5bc4aa08e154b39bL,
                          "line")))
              .first());
      if (isBeginning) {
        nodeToSelect =
            ListSequence.fromList(
                    SLinkOperations.getChildren(
                        line,
                        MetaAdapterFactory.getContainmentLink(
                            0xf280165065d5424eL,
                            0xbb1b463a8781b786L,
                            0x757ba20a4c87f96cL,
                            0x7c7f5b2f3199028dL,
                            "part")))
                .getElement(index - 1);
        caret =
            SPropertyOperations.getString(
                    SNodeOperations.cast(
                        ListSequence.fromList(
                                SLinkOperations.getChildren(
                                    line,
                                    MetaAdapterFactory.getContainmentLink(
                                        0xf280165065d5424eL,
                                        0xbb1b463a8781b786L,
                                        0x757ba20a4c87f96cL,
                                        0x7c7f5b2f3199028dL,
                                        "part")))
                            .getElement(index - 1),
                        MetaAdapterFactory.getConcept(
                            0xf280165065d5424eL,
                            0xbb1b463a8781b786L,
                            0x7c7f5b2f31990287L,
                            "jetbrains.mps.baseLanguage.javadoc.structure.TextCommentLinePart")),
                    MetaAdapterFactory.getProperty(
                        0xf280165065d5424eL,
                        0xbb1b463a8781b786L,
                        0x7c7f5b2f31990287L,
                        0x7c7f5b2f31990288L,
                        "text"))
                .length();
      }
      CommentLine_BehaviorDescriptor.tryMergeToRight_idooaTF_3fF3.invoke(line, index - 1);

      //  Merging other lines
      SNode lastElementLine =
          ListSequence.fromList(
                  SLinkOperations.getChildren(
                      __thisNode__,
                      MetaAdapterFactory.getContainmentLink(
                          0xf280165065d5424eL,
                          0xbb1b463a8781b786L,
                          0x5bc4aa08e154b399L,
                          0x5bc4aa08e154b39bL,
                          "line")))
              .last();
      for (SNode elementLine :
          ListSequence.fromList(
                  SLinkOperations.getChildren(
                      __thisNode__,
                      MetaAdapterFactory.getContainmentLink(
                          0xf280165065d5424eL,
                          0xbb1b463a8781b786L,
                          0x5bc4aa08e154b399L,
                          0x5bc4aa08e154b39bL,
                          "line")))
              .reversedList()) {
        SNodeOperations.insertNextSiblingChild(line, elementLine);
      }

      if ((lastElementLine == null)) {
        index = SNodeOperations.getIndexInParent(__thisNode__);
        SNodeOperations.deleteNode(__thisNode__);
        if (!(isBeginning)) {
          nodeToSelect =
              ListSequence.fromList(
                      SLinkOperations.getChildren(
                          line,
                          MetaAdapterFactory.getContainmentLink(
                              0xf280165065d5424eL,
                              0xbb1b463a8781b786L,
                              0x757ba20a4c87f96cL,
                              0x7c7f5b2f3199028dL,
                              "part")))
                  .getElement(index - 1);
          caret =
              SPropertyOperations.getString(
                      SNodeOperations.cast(
                          ListSequence.fromList(
                                  SLinkOperations.getChildren(
                                      line,
                                      MetaAdapterFactory.getContainmentLink(
                                          0xf280165065d5424eL,
                                          0xbb1b463a8781b786L,
                                          0x757ba20a4c87f96cL,
                                          0x7c7f5b2f3199028dL,
                                          "part")))
                              .getElement(index - 1),
                          MetaAdapterFactory.getConcept(
                              0xf280165065d5424eL,
                              0xbb1b463a8781b786L,
                              0x7c7f5b2f31990287L,
                              "jetbrains.mps.baseLanguage.javadoc.structure.TextCommentLinePart")),
                      MetaAdapterFactory.getProperty(
                          0xf280165065d5424eL,
                          0xbb1b463a8781b786L,
                          0x7c7f5b2f31990287L,
                          0x7c7f5b2f31990288L,
                          "text"))
                  .length();
        }
        CommentLine_BehaviorDescriptor.tryMergeToRight_idooaTF_3fF3.invoke(line, index - 1);
      } else {
        //  Merging last line parts
        index =
            ListSequence.fromList(
                        SLinkOperations.getChildren(
                            lastElementLine,
                            MetaAdapterFactory.getContainmentLink(
                                0xf280165065d5424eL,
                                0xbb1b463a8781b786L,
                                0x757ba20a4c87f96cL,
                                0x7c7f5b2f3199028dL,
                                "part")))
                    .count()
                - 1;
        for (SNode linePart :
            ListSequence.fromList(SNodeOperations.getNextSiblings(__thisNode__, false))) {
          ListSequence.fromList(
                  SLinkOperations.getChildren(
                      lastElementLine,
                      MetaAdapterFactory.getContainmentLink(
                          0xf280165065d5424eL,
                          0xbb1b463a8781b786L,
                          0x757ba20a4c87f96cL,
                          0x7c7f5b2f3199028dL,
                          "part")))
              .addElement(
                  SNodeOperations.cast(
                      linePart,
                      MetaAdapterFactory.getConcept(
                          0xf280165065d5424eL,
                          0xbb1b463a8781b786L,
                          0x7c7f5b2f31990286L,
                          "jetbrains.mps.baseLanguage.javadoc.structure.CommentLinePart")));
        }
        SNodeOperations.deleteNode(__thisNode__);
        if (!(isBeginning)) {
          nodeToSelect =
              ListSequence.fromList(
                      SLinkOperations.getChildren(
                          lastElementLine,
                          MetaAdapterFactory.getContainmentLink(
                              0xf280165065d5424eL,
                              0xbb1b463a8781b786L,
                              0x757ba20a4c87f96cL,
                              0x7c7f5b2f3199028dL,
                              "part")))
                  .getElement(index);
          caret =
              SPropertyOperations.getString(
                      SNodeOperations.cast(
                          ListSequence.fromList(
                                  SLinkOperations.getChildren(
                                      lastElementLine,
                                      MetaAdapterFactory.getContainmentLink(
                                          0xf280165065d5424eL,
                                          0xbb1b463a8781b786L,
                                          0x757ba20a4c87f96cL,
                                          0x7c7f5b2f3199028dL,
                                          "part")))
                              .getElement(index),
                          MetaAdapterFactory.getConcept(
                              0xf280165065d5424eL,
                              0xbb1b463a8781b786L,
                              0x7c7f5b2f31990287L,
                              "jetbrains.mps.baseLanguage.javadoc.structure.TextCommentLinePart")),
                      MetaAdapterFactory.getProperty(
                          0xf280165065d5424eL,
                          0xbb1b463a8781b786L,
                          0x7c7f5b2f31990287L,
                          0x7c7f5b2f31990288L,
                          "text"))
                  .length();
        }
        CommentLine_BehaviorDescriptor.tryMergeToRight_idooaTF_3fF3.invoke(lastElementLine, index);
      }
    }
    return new NodeCaretPair(nodeToSelect, caret);
  }

  /*package*/ HTMLElement_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) smartDelete_id7PYAiugbmRz(node, (Boolean) 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;
  }

  private static boolean isNotEmptyString(String str) {
    return str != null && str.length() > 0;
  }
}
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 QueryFunction_TableModel_BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x272d3b44cc8481eL,
          0x9e2f07793fbfcb41L,
          0x3e51593e83e97a4dL,
          "jetbrains.mps.lang.editor.table.structure.QueryFunction_TableModel");
  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(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(
          getApplicableConceptFunctionParameter_id2D1PBM_bxJg, getExpectedReturnType_idhEwIGRD);

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

  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-011c8959029e(jetbrains.mps.lang.editor.structure)",
                "1161622981231"));
    ListSequence.fromList(result)
        .addElement(
            SNodeOperations.getNode(
                "r:00000000-0000-4000-0000-011c8959029e(jetbrains.mps.lang.editor.structure)",
                "1142886811589"));
    return result;
  }

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

  /*package*/ QueryFunction_TableModel_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) 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) 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_exju2j_a0a1() {
    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(
                "r:b60215f1-3d3e-41cc-8321-723ef8eb59dd(jetbrains.mps.lang.editor.table.runtime)"),
            facade.createNodeId("4490468428501048480")));
    return quotedNode_1;
  }
}
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 ProjectPluginType_BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0xef7bf5acd06c4342L,
          0xb11de42104eb9343L,
          0x6b059b0986f2068L,
          "jetbrains.mps.lang.plugin.standalone.structure.ProjectPluginType");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

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

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

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

  private static List<SNode> getMembers_idhEwINC$(@NotNull SNode __thisNode__, SNode contextNode) {
    return IClassifier_BehaviorDescriptor.getMembers_idhEwJink.invoke(
        SLinkOperations.getTarget(
            __thisNode__,
            MetaAdapterFactory.getReferenceLink(
                0xef7bf5acd06c4342L,
                0xb11de42104eb9343L,
                0x6b059b0986f2068L,
                0x6b059b0986f206aL,
                "plugin")),
        contextNode);
  }

  /*package*/ ProjectPluginType_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) getMembers_idhEwINC$(node, (SNode) 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 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 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;
  }
}
public final class Node_IsNotNullOperation_BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x7866978ea0f04cc7L,
          0x81bc4d213d9375e1L,
          0x110e123bce7L,
          "jetbrains.mps.lang.smodel.structure.Node_IsNotNullOperation");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

  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(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  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(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));
  public static final SMethod<Boolean> applicableToConcept_id1653mnvAgvQ =
      new SMethodBuilder<Boolean>(new SJavaCompoundTypeImpl(Boolean.TYPE))
          .name("applicableToConcept")
          .modifiers(SModifiersImpl.create(9, AccessPrivileges.PUBLIC))
          .concept(CONCEPT)
          .id("1653mnvAgvQ")
          .registry(REGISTRY)
          .build(SParameterImpl.fromList(SJavaCompoundTypeImpl.fromClasses()));

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

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

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

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

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

  /*package*/ Node_IsNotNullOperation_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) {
      case 0:
        return (T) applicableToLink_id1653mnvAgvK(concept);
      case 1:
        return (T) applicableToNode_id1653mnvAgrs(concept);
      case 2:
        return (T) applicableToConcept_id1653mnvAgvQ(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 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 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 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 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 NodeDefaultSearchScope_BehaviorDescriptor extends BaseBHDescriptor {
  private static final SAbstractConcept CONCEPT =
      MetaAdapterFactory.getConcept(
          0x3f4bc5f5c6c14a28L,
          0x8b10c83066ffa4a1L,
          0x10dead47852L,
          "jetbrains.mps.lang.constraints.structure.NodeDefaultSearchScope");
  private static final BehaviorRegistry REGISTRY =
      ConceptRegistry.getInstance().getBehaviorRegistry();

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

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

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

  private static SNode getReferentConcept_idhEwIhhr(@NotNull SNode __thisNode__) {
    if ((SNodeOperations.getNodeAncestor(
            __thisNode__,
            MetaAdapterFactory.getConcept(
                0xaf65afd8f0dd4942L,
                0x87d963a55f2a9db1L,
                0x11d43447b1aL,
                "jetbrains.mps.lang.behavior.structure.ConceptBehavior"),
            false,
            false)
        != null)) {
      return SLinkOperations.getTarget(
          SNodeOperations.cast(
              SNodeOperations.getContainingRoot(__thisNode__),
              MetaAdapterFactory.getConcept(
                  0xaf65afd8f0dd4942L,
                  0x87d963a55f2a9db1L,
                  0x11d43447b1aL,
                  "jetbrains.mps.lang.behavior.structure.ConceptBehavior")),
          MetaAdapterFactory.getReferenceLink(
              0xaf65afd8f0dd4942L, 0x87d963a55f2a9db1L, 0x11d43447b1aL, 0x11d43447b1fL, "concept"));
    }
    if ((SNodeOperations.getNodeAncestor(
            __thisNode__,
            MetaAdapterFactory.getConcept(
                0x3f4bc5f5c6c14a28L,
                0x8b10c83066ffa4a1L,
                0x11a7208faaeL,
                "jetbrains.mps.lang.constraints.structure.ConceptConstraints"),
            false,
            false)
        != null)) {
      return SLinkOperations.getTarget(
          SNodeOperations.getNodeAncestor(
              __thisNode__,
              MetaAdapterFactory.getConcept(
                  0x3f4bc5f5c6c14a28L,
                  0x8b10c83066ffa4a1L,
                  0x11a7208faaeL,
                  "jetbrains.mps.lang.constraints.structure.ConceptConstraints"),
              false,
              false),
          MetaAdapterFactory.getReferenceLink(
              0x3f4bc5f5c6c14a28L, 0x8b10c83066ffa4a1L, 0x11a7208faaeL, 0x11a720969b6L, "concept"));
    }
    return null;
  }

  /*package*/ NodeDefaultSearchScope_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) getReferentConcept_idhEwIhhr(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;
  }
}