« ビルダーの登録方法 | トップページ | ビルダー登録の担当者は? »

2004.03.21

ビルダーの解除方法

ビルダーの登録方法」を紹介したら,解除方法を紹介しない理由はないだろう。ここでは,プロジェクトに登録されているビルダーを登録解除する手順を紹介する。

ビルダーはIProjectDescriptionオブジェクトにICommandオブジェクトの配列として登録されている。「プロジェクト・ネーチャーの解除方法」のときと同じように,解除したいビルダーのICommandオブジェクトを配列から削除することで,ビルダーを解除できる

  String removeBuilderId = "yoichiro.myPlugin.myBuilder";

  IProject project = ...;
  IProjectDescription description = project.getDescription();
  ICommand[] commands = description.getBuildSpec();
  for (int i = 0; i < commands.length; i++) {
    if (commands[i].getBuilderName().equals(removeBuildName)) {
      ICommand[] newCommands = new ICommand[commands.length - 1];
      System.arraycopy(commands, 0, newCommands, 0, i);
      System.arraycopy(commands, i + 1, newCommands, i, commands.length - i - 1);
      description.setBuildSpec(newCommands);
      project.setDescription(description, null);
      return; // or break;
    }
  }

IProjectDescriptionオブジェクトからgetBuildSpecメソッドで,登録されているビルダーのICommandオブジェクトの配列を取得する。その後,配列の要素ごとにgetBuilderNameメソッドでビルダーのIDを取得して,解除したいビルダーを見つける。もし見つかったら,あとはそのICommandオブジェクトを除外したICommandオブジェクトの配列を生成し,IProjectDescriptionオブジェクトのsetBuildSpecメソッドに新しい配列をセットする。そして最後にIProjectDescriptionオブジェクトをIProjectオブジェクトのsetDescriptionメソッドに渡して,完了。

上記の処理を行うことにより,ビルダーは解除され,.projectファイルからも該当ビルダーの記述は削除される。

|

« ビルダーの登録方法 | トップページ | ビルダー登録の担当者は? »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/12631/334167

この記事へのトラックバック一覧です: ビルダーの解除方法:

« ビルダーの登録方法 | トップページ | ビルダー登録の担当者は? »