ビルダーの解除方法
「ビルダーの登録方法」を紹介したら,解除方法を紹介しない理由はないだろう。ここでは,プロジェクトに登録されているビルダーを登録解除する手順を紹介する。
ビルダーは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ファイルからも該当ビルダーの記述は削除される。
| 固定リンク
この記事へのコメントは終了しました。
コメント