到目前为止,我们假定资源 API 是用来修改位于用户文件系统中的资源。这确实是工作区的基本结构,但也有可能插件为其它某处管理的资源操作而添加功能。例如,平台小组支持插件添加处理受版本资源库管理的资源的能力。
资源 API 包括特别添加的功能,以启用小组支持插件和使用小组支持实现资源库提供程序的插件。以下讨论涉及登记资源 hook 的一般机制。请参阅小组资源修改 hook 以获得小组如何使用这些 hook 的讨论。
此 hook 允许小组插件及其提供程序控制资源移动和删除的实现。该 hook 包括防止这些操作发生的能力。实现器可提供移动或删除文件、文件夹和项目的替代实现。
小组插件使用 org.eclipse.core.resources.moveDeleteHook 扩展点登记其 hook:
<extension point="org.eclipse.core.resources.moveDeleteHook" id="MoveDeleteHook"> <moveDeleteHook class="org.eclipse.team.internal.core.MoveDeleteManager"/> </extension>
提供的类必须实现 IMoveDeleteHook,只要移动或删除资源就由平台调用它。小组插件安装一个移动删除 hook 管理器,它可以确定哪个小组提供程序管理资源并调用其特定 hook。
注:移动删除 hook 特别为小组核心插件和其它小组资源库提供程序客户机的使用而设计。它不打算用作一般用途。小组提供程序不应使用扩展点安装 hook,而是在它们的 RepositoryProvider 类中实现其 hook。有关使用这些 hook 的更多信息,请参阅小组资源修改 hook。
小组资源库提供程序也有可能需要防止或干预文件的编辑或保存。小组插件通过使用扩展点 org.eclipse.core.resources.fileModificationValidator 登记要在修改资源时调用的验证器来完成此功能。
<extension point="org.eclipse.core.resources.fileModificationValidator" id="FileValidator"> <fileModificationValidator class="org.eclipse.team.internal.core.FileModificationValidatorManager"/> </extension>
提供的类必须实现 IFileModificationValidator,它在保存或打开资源时由平台调用。小组插件安装一个文件修改管理器,它可以确定哪个小组提供程序管理资源并调用其特定验证器。
注:文件修改验证器 hook 特别为小组核心插件的使用而设计。它不打算用作一般用途。小组提供程序不应使用扩展点安装 hook,而是在它们的 RepositoryProvider 类中实现其 hook。有关使用这些 hook 的更多信息,请参阅小组资源修改 hook。