プロジェクト・ネーチャーの解除方法
「プロジェクト・ネーチャーの適用方法」を紹介したが,その解除方法も気になるところだろう。ここではプロジェクト・ネーチャーの解除方法を紹介する。
プロジェクト・ネーチャーの適用は,適用したいプロジェクト・ネーチャーのIDをIProjectDescriptionオブジェクトが持っている配列に追加することで実現できた。ということは,適用されているプロジェクト・ネーチャーの解除は,解除したいプロジェクト・ネーチャーのIDをIProjectDescriptionオブジェクトが持つ配列から除外することで実現できる。理屈は至極単純である。
String removeNatureId = "yoichiro.myPlugin.myNature";
IProject project = ...;
IProjectDescription description = project.getDescription();
String[] ids = description.getNatureIds();
for (int i = 0; i < ids.length; i++) {
if (ids[i].equals(removeNatureId)) {
String[] newIds = new String[ids.length - 1];
System.arraycopy(ids, 0, newIds, 0, i);
System.arraycopy(ids. i + 1, newIds, i, ids.length - i - 1);
description.setNatureIds(newIds);
project.setDescription(description);
return; // or break;
}
}
最初にIProjectオブジェクトのgetDescriptionメソッドでIProjectDescriptionオブジェクトを取得し,そのgetNatureIdsメソッドを呼び出して適用されているプロジェクト・ネーチャーのIDの配列を取得している。そして,配列の中に解除したいプロジェクト・ネーチャーのIDがあるかどうかをチェックする。もし見つかったら,発見場所のインデックスを境に,その前後の要素を新しい配列にコピーして,解除したいプロジェクト・ネーチャーのIDを除外した配列を作成する。
あとは「プロジェクト・ネーチャーの適用方法」のときと同じように,IProjectDescriptionオブジェクトのsetNatureIdsメソッドで新しいIDの配列をセットし,IProjectDescriptionオブジェクトをIProjectオブジェクトのsetDescriptionメソッドに渡して,プロジェクト・ネーチャーのIDの配列の更新を反映させる。
上記の処理が完了すれば,プロジェクトからプロジェクト・ネーチャーが解除され,.projectファイルからも解除したプロジェクト・ネーチャーに関する記載が削除される。
プロジェクト・ネーチャーを解除しなければならないときって,そう多くはないはず。というか,ほぼないと思って間違いないだろう。プロジェクトの特徴が途中で変更になることってないだろうし。上記の処理は知っていて損はないが,きっと使わないもの,だと思う。
| 固定リンク
この記事へのコメントは終了しました。
コメント