/*
   Patterns Framework (パターン実装構造の概要)
   フレームワークは com.ibm.xtools.patterns.framework プラグインに含まれています
   サンプル実装は com.ibm.xtools.patterns.sample プラグインに含まれています
*/

class Pattern extends AbstractPatternDefinition {

   ... メタデータの初期化 (static か dynamic かによって異なる)
   ... private で保持するパターン・パラメーターの初期化
   ... パターン・パラメーター依存の宣言 (パラメーターに対する更新呼び出しをトリガーするため)

   private class Instance extends AbstractPatternInstance {
      ... インスタンスから指示された展開に対する expand メソッドの処理 (デフォルトを指定)
      ... ターゲットに基づくインスタンス動作のロジックを処理 (デフォルトを指定)
      ... インスタンス表現の命名を動的に処理
   }

   private class Parameter [0..*] extends AbstractPatternParameter {
      ... メタデータの初期化 (static か dynamic かによって異なる)
      ... 指定された値の検証に対するオプションの OCL2 制約の宣言
      ... パラメーターの指示で追加された値に対する expand メソッドの処理 (デフォルトを指定)
      ... パラメーターの指示で削除された値に対する expand メソッドの処理 (デフォルトを指定)
      ... パラメーターの指示で保持する値に対する expand メソッドの処理
      ... パラメーター依存の通知に対する update メソッドの処理
      ... 指定された値を検証するための is valid メソッドの処理 (デフォルトを指定)
   }

}