例: インライン Groovy を使用したマッピング・ルール

以下は、executable タイプのファイルを金曜日以外の曜日に無視し、day-of-week (曜日) 属性ルールを設定する場合の例です。

executable タイプのファイルを金曜日以外の曜日に無視する

このサンプル・ルールでは、ファイルが金曜日のみに executable である場合を除き、executable タイプのファイルを無視します。 このルールは、アクションを組み込みアクションで記述したまま、条件を Groovy で記述する方法を示しています。
INSERT {
IMPORT com.telelogic.cm.migrate.MigrateObject;
IMPORT static java.util.Calendar.*;
}

WHEN { migrateObject.type() == 'executable' &&
	Calendar.getInstance().get(DAY_OF_WEEK) != FRIDAY } IGNORE

day-of-week (曜日) 属性の設定

このサンプル・ルールでは、「*.day」という名前のすべてのファイルの「day」属性を、曜日の名前に設定します。このルールは実用的ではありませんが、条件を組み込み条件で記述したまま、アクションを Groovy で記述する方法を示しています。

この例は余分な内容を含み、必要以上に長くなっていますが、INSERT メカニズムを使用してヘルパー・メソッドを宣言する方法を示しています。
IMPORT com.telelogic.cm.migrate.MigrateObject;
IMPORT org.joda.time.*;

WHEN %name ~ '*.day' { migrateObject.setAttribute('day', getWeekDay()) }

INSERT
{
	String getWeekDay()
	{
		return new DateTime().dayOfWeek().getAsText();
	}

}

フィードバック