Até agora, presumimos que a API de recursos está a ser utilizada para modificar recursos que se encontram no sistema de ficheiros do utilizador. Esta é realmente a estrutura fundamental do espaço de trabalho, mas também é possível que um plug-in adicione capacidades de manipulação de recursos que são geridas noutro lugar. Por exemplo, os plug-ins Suporte a equipas da plataforma adicionam a capacidade de trabalhar com recursos que estão sob gestão de um repositório de versionamento.
A API de recursos inclui capacidades que foram adicionadas especificamente para activar os plug-ins de suporte s equipas e plug-ins que implementem fornecedores de repositórios através do suporte a equipas. A abordagem seguinte abrange o mecanismo genérico para registar ganchos de recursos. Consulte Implementar um fornecedor de repositórios para uma abordagem à utilização que as equipas fazem destes ganchos.
Este gancho permite ao plug-in da equipa e seus fornecedores controlar a implementação de movimentações e eliminações de recursos. O gancho inclui a capacidade de impedir estas operações. Os implementadores podem facultar implementações alternativas para mover ou eliminar ficheiros, pastas e projectos.
O plug-in da equipa utiliza o ponto de extensão org.eclipse.core.resources.moveDeleteHook para registar o seu gancho:
<extension point="org.eclipse.core.resources.moveDeleteHook" id="MoveDeleteHook"> <moveDeleteHook class="org.eclipse.team.internal.core.MoveDeleteManager"/> </extension>
A classe facultada deve implementar IMoveDeleteHook, o qual é chamado pela plataforma sempre que um recurso seja movimentado ou eliminado. O plug-in da equipa instala um gestor de ganchos de movimentação eliminação que pode determinar qual o fornecedor de equipas que gere um recurso e invocar o seu gancho específico.
Também é possível que os fornecedores de repositórios para equipas precisem de impedir a ou intervir na edição ou salvaguarda de um ficheiro. O plug-in da equipa concretiza isto com o ponto de extensão org.eclipse.core.resources.fileModificationValidator para registar um validador que é chamado sempre que um recurso vá ser modificado.
<extension point="org.eclipse.core.resources.fileModificationValidator" id="FileValidator"> <fileModificationValidator class="org.eclipse.team.internal.core.FileModificationValidatorManager"/> </extension>
A classe facultada deve implementar IFileModificationValidator, o qual é chamado pela plataforma sempre que um recurso seja guardado ou aberto. O plug-in da equipa instala um gestor de modificação de ficheiros que pode determinar qual o fornecedor de equipas que gere um recurso e invocar o seu validador específico.
Os fornecedores de repositórios por vezes precisam de colocar ganchos em operações de espaço de trabalho adicionais a fim de impor mais restrições ou de personalizar comportamento de espaço de trabalho. O ponto de extensão org.eclipse.core.resources.teamHook faculta algumas das outras funções especiais a fornecedores de equipas. Em particular, este gancho permite a um fornecedor de equipas decidir se pastas e ficheiros ligados devem ser permitidos ou não para dado projecto. Alguns sistemas de repositórios têm regras estritas sobre o esquema físico dos projectos em disco, e não têm capacidade de tratar recursos ligados a localizações arbitrárias.
O gancho a equipa também permite a um fornecedor de repositórios facultar uma fábrica de regras de agendamento que será usada por todas as operações de espaço de trabalho. De cada vez que um método de API é chamado para modificar o espaço de trabalho de algum modo, o espaço de trabalho obtém uma regra de agendamento. Esta regra de agendamento impede outros módulos de modificarem esses recursos durante a invocação do método da API. Se um fornecedor de repositórios realizar trabalho adicional num validador de modificação de ficheiros ou gancho de movimentação/eliminação, o fornecedor deve dizer também ao espaço de trabalho quais as regras de agendamento adicionais de que irá precisar. Consulte a secção sobre Constituir lotes de recursos para mais detalhes sobre a utilização que o espaço de trabalho faz das regras de agendamento.
A class facultada para o gancho da equipa deve implementar TeamHook. O plug-in da equipa instala o único gancho de equipa que pode determinar qual o fornecedor de equipas que gere um recurso e invocar o seu gancho específico.
Nota: Todos os três ganchos de equipas estão concebidos especificamente para uso do plug-in de núcleo da equipa. Não se destinam a utilização genérica. Os fornecedores de equipas não devem instalar ganchos com estes pontos de extensão, mas sim implementar os seus ganchos na classe Repository Provider (fornecedor de repositórios). Consulte Ganchos de modificação de recursos de equipas para mais informações sobre a utilização destes ganchos.