Ganchos de Modificação do Recurso
A parte mais interessante da função associada a um provedor de repositório
ocorre durante o trabalho do usuário com os recursos no projeto que está configurado para
o provedor. Para estar ciente das alterações que o usuário faz a um
recurso, o provedor pode implementar ganchos de
modificação do recurso. O plug-in dos recursos fornece esses ganchos como
pontos de extensão. A documentação para IMoveDeleteHook
e IFileModificationValidator
descreve os detalhes para implementação desses ganchos.
O plug-in da equipe otimiza e simplifica a associação do gancho com
os recursos apropriados registrando ganchos genéricos com o plug-in dos
recursos. Esses ganchos genéricos simplesmente procuram no provedor de repositório
um determinado recurso e obtém este gancho. A vantagem é que apenas um gancho de
provedor é chamado, em vez de cada implementação de provedor ter que registrar um
gancho que deve verificar primeiramente se o recurso é gerenciado pelo provedor.
O significado disso para o plug-in é que você fornece os ganchos necessários através
da substituição de métodos no RepositoryProvider.
A resposta da implementação padrão desses métodos é nula, indicando que
os ganchos não são necessários.
- getMoveDeleteHook - responde com um IMoveDeleteHook
apropriado para o provedor. Este gancho permite que os provedores controlem
como os movimentos e exclusões ocorrerão e inclui a capacidade de evitar que
aconteçam. Os implementadores podem fornecer implementações alternativas para
mover ou excluir arquivos, pastas e projetos. O cliente CVS utiliza
este gancho para monitorar exclusões de pastas e assegurar que os arquivos contidos nas
pastas excluídas sejam lembrados para que possam, posteriormente, ser excluídos do
repositório, se desejado.
- getFileModificationValidator - responde com um IFileModificationValidator
apropriado para o provedor. Este gancho permite que os provedores verifiquem antecipadamente
todas as modificações ou salvamentos dos arquivos. Normalmente, ele é necessário
quando um provedor de repositório deseja implementar a criação de versões pessimista.
Nessa criação, um arquivo deve ser verificado antes de ser modificado,
e apenas um cliente pode verificar um arquivo em um determinado momento.
Ela poderia ser implementada verificando-se um arquivo (se ainda não
verificado) sempre que um fosse editado e verificando-o novamente
quando fosse salvo. Como o CVS utiliza um esquema de criação de versões otimista,
este gancho não é implementado.
