资源修改 hook
在用户处理项目中为提供程序配置的资源时,与资源库提供程序关联的大多数有趣功能将发生。要获知用户对资源的更改,提供程序可以实现资源修改 hook。资源插件作为扩展点提供这些 hook。IMoveDeleteHook
和 IFileModificationValidator
的文档描述了实现这些 hook 的详细信息。
小组插件通过向资源插件登记类属 hook,来优化和简化 hook 与合适资源的关联。这些类属 hook 仅在资源库提供程序中查找给定的资源并获取其 hook。这具有只调用一个提供程序 hook 的优势,而不是使每个提供程序实现登记 hook,那样必须首先检查资源是否由提供程序管理。
对于您的插件,这意味着您通过覆盖 RepositoryProvider 中的方法来提供任何必要的 hook。这些方法的缺省实现将回答 null,指示不需要 hook。
- getMoveDeleteHook — 应答适合提供程序的 IMoveDeleteHook。此 hook 允许提供程序控制移动和删除如何发生,并包括防止它们发生的能力。实现器可提供移动或删除文件、文件夹和项目的替代实现。CVS 客户机使用此 hook 来监控文件夹删除,并确保记住包含在被删除文件夹中的任何文件,这样可在以后需要时将它们从资源库中删除。
- getFileModificationValidator — 应答适合提供程序的 IFileModificationValidator。此 hook 允许提供程序重新检查任何修改或保存至文件。当资源库提供程序要实现悲观版本控制时,通常需要该 hook。在悲观版本控制中,修改文件之前必须先查看文件,并且在任何给定时间仅一个客户机可以查看文件。悲观版本控制可以通过一旦文件被编辑时检出该文件(若尚未检出),并当文件被保存时再检入它来实现。因为 CVS 使用乐观版本控制方案,所以它并不实现此 hook。
