MPS 2025.3 ヘルプ

制約規則

制約言語には、個々の制約のエラーメッセージを指定できないことや、同じ種類の制約に対して複数の個別のルールを定義できないことなど、いくつかの欠点があります。実験的な制約規則言語は、これらを克服しようとしています。これは、RulesConstraintsRules ルートの制約の側面で利用できます。

Creating a new root

子 / 親 / 祖先 / ルートルールを指定できます

RulesConstraintsRules ルートは、最小限の視覚的なガイダンスを選択します。

Empty Constraints rule root

定義はルールブロックに分割されます。これらのルールブロックはそれぞれ、次の 4 つのカテゴリのいずれか専用にする必要があります。

  • CanBeAncestor

  • CanBeChild

  • CanBeParent

  • CanBeRoot

Categories for rules blocks

ルールブロックには、次の 2 つのタイプのメンバーが含まれます。

Members of rules blocks
  • 変数定義 - ルールで使用できる、再利用可能な事前計算された値

  • ルール定義 - 制約として評価する論理式。簡単に参照できるオプションの名前 (テストなど)、オプションのエラーメッセージ、およびオプションの適用性ガード式。

A sample definition

ルールブロックの暗黙的なパラメーター

ルールブロックは、ルールで評価するためのコンテキストを取得するパラメーターを受け取ります。これらは完了メニューで使用できます。

Use of implicit parameters

これらのパラメーターは、ルールのエラーメッセージを形成するために使用することもできます。

Use of implicit parameters in error messages

ルールブロックの種類ごとに、異なる暗黙的パラメーターのセットが提供されます。

  • CanBeRoot - コンセプトモデル

  • CanBeChild - childNodeparentNodeリンク

  • CanBeParent - childNodeparentNodeリンクchildConcept

  • CanBeAncestor - ancestorNodeparentNode子孫ノード子孫コンセプトリンク

トレース制約ルールの評価

制約ルールの定義により、トレースを改善するために、「インスペクター」ウィンドウでログメッセージを指定できるようになります。

Rule tracing definition

単一のログステートメントまたは BlockStatement を使用して、より複雑なロジックを含めることができます。

ハイライトする機能を指定する

制約ルールのエラーメッセージは、特定のノードのプロパティまたは参照を対象にすることができます。

Whole node highlighted

ノード全体をハイライトするエラーの代わりに、プロパティまたは参照のみをハイライトするように構成できます。

A property of a node highlighted

「ハイライトする機能」プロパティは、エラーのハイライトを制限するように設定できます。

Restrict to a property

参照のプロパティを直接参照することも、式を使用して参照することもできます。

Restrict by expression to a property
Restrict by expression to a reference
2024 年 2 月 11 日