リソース変更フック

これまでは、ユーザーのファイル・システムに配置されたリソースを変更するためにリソース API が使用されていると想定してきました。  実際、これがワークスペースの基本構造なのですが、別の場所で管理されているリソースの操作についての機能をプラグインが追加することも可能です。  例えば、プラットフォームのチーム・サポート・プラグインは、 バージョン管理リポジトリーの管理の元にあるリソースを操作する機能を追加します。

リソース API には、チーム・サポート・プラグインと、 チーム・サポートを使用してリポジトリー・プロバイダーをインプリメントするプラグインを使用可能にするために特別に追加された機能が組み込まれています。  次の説明は、リソース・フックを登録するための汎用メカニズムを扱っています。  チームによるこれらのフックの使用方法については、チーム・リソース変更フックを参照してください。  

リソース移動/削除フック

このフックを使用すると、チーム・プラグインとそのプロバイダーによって、リソースの移動と削除をインプリメントする方法を制御できます。  フックには、これらの操作の実行を防ぐ機能が組み込まれています。  インプリメンターは、ファイル、フォルダー、およびプロジェクトを移動または削除するための代替インプリメンテーションを提供できます。 

チーム・プラグインは、 org.eclipse.core.resources.moveDeleteHook 拡張ポイントを使用してフックを登録します。

<extension point="org.eclipse.core.resources.moveDeleteHook" id="MoveDeleteHook">
	<moveDeleteHook class="org.eclipse.team.internal.core.MoveDeleteManager"/>
 </extension>

指定されたクラスは、IMoveDeleteHook をインプリメントする必要があります。 これは、リソースが移動または削除されるたびにプラットフォームによって呼び出されます。  チーム・プラグインは、リソースを管理しているチーム・プロバイダーを判別してその特定のフックを起動できる移動削除フック・マネージャーをインストールします。

注:  移動削除フックは、チーム・コア・プラグインおよびその他のチーム・リポジトリー・プロバイダー・クライアントによって使用されるために特別に設計されました。  一般的な使用は意図されていません。  チーム・プロバイダーは、拡張ポイントを使用してフックをインストールするべきではなく、代わりにフックを RepositoryProvider クラスにインプリメントしなければなりません。  これらのフックの使用法については、チーム・リソース変更フックを参照してください。

ファイル変更バリデーター

チーム・リポジトリー・プロバイダーが、ファイルの編集または保管を防ぐか、それらに介入する必要が生じる可能性もあります。  チーム・プラグインは、拡張ポイント org.eclipse.core.resources.fileModificationValidator を使用して、リソースが変更されようとするたびに呼び出されるバリデーターを登録することによって、これを実行します。

<extension point="org.eclipse.core.resources.fileModificationValidator" id="FileValidator">
	<fileModificationValidator class="org.eclipse.team.internal.core.FileModificationValidatorManager"/>
 </extension>

指定されたクラスは、IFileModificationValidator をインプリメントする必要があります。 これは、リソースが保管されるか開かれるたびにプラットフォームによって呼び出されます。   チーム・プラグインは、リソースを管理しているチーム・プロバイダーを判別して、 その特定のバリデーターを起動できるファイル変更マネージャーをインストールします。

注:  ファイル変更バリデーター・フックは、チーム・コア・プラグインによって使用されるために特別に設計されました。  一般的な使用は意図されていません。  チーム・プロバイダーは、拡張ポイントを使用してフックをインストールするべきではなく、代わりにフックを Repository Provider クラスにインプリメントしなければなりません。   これらのフックの使用法については、チーム・リソース変更フックを参照してください。

Copyright IBM Corporation and others 2000, 2003.