エンティティのタイプを表す一連の概念があります。
サンプル コンセプト:
Loop
with children loopCount: IntegerProperty[1]
HttpRequest
with children url: StringProperty[1]
、hostName: StringProperty[1]
どちらの概念も概念を拡張AbstractTestElement
します (名前、コメントなどの共通のプロパティを定義します)。
次のようにbaseLanguageに生成されLoop
たい:HttpRequest
ループ:
Loop e = new Loop();
e.setProperty(new IntegerProperty("loopCount", node.loopCount));
HttpRequest:
HttpRequest e = new HttpRequest();
e.setProperty(new StringProperty("url", node.url));
e.setProperty(new IntegerProperty("host", node.hostName));
私が望むのは、この共通のロジックをカバーする共通のジェネレーター テンプレートを用意してsetProperty
、さまざまな種類のテスト要素で繰り返されないようにすることです。テスト要素に固有の処理が必要なプロパティもありますが、プロパティが 1 対 1 で変換される場合が多いため、
質問は次のとおりです。Loop/HttpRequest の概念構成にメタデータを添付するにはどうすればよいですか? それを行うMPSの慣用的な方法は何ですか?
1) に入れる名前として「プロパティの名前」を使用できますがnew XXXProperty
、理想的にはHttpRequest.HOST_PROPERTY_NAME
一種の参照を使用するため、「プロパティの名前」では不十分です。
2)おそらく注釈を発明し、概念のプロパティに注釈を付ける可能性があります.MPS自体はそのアプローチを使用していないようです.
3) (ab) 概念の動作を使用して返す<quotation new StringProperty("url", node.url) >
と、さらにぎこちなく見えます。