Hasta ahora hemos presupuesto que se estaba utilizando la API de recursos para modificar los recursos situados en el sistema de archivos del usuario. Es cierto que esta es la estructura fundamental del área de trabajo, pero también existe la posibilidad de que un conector aporte prestaciones de manipulación de recursos gestionados en otra parte. Por ejemplo, los conectores de soporte de equipo de la plataforma aportan capacidad para trabajar con recursos sujetos a la gestión de un depósito de versiones.
La API de recursos incluye prestaciones aportadas específicamente para permitir que los conectores de soporte de equipo y los conectores que implementan proveedores de depósitos utilicen el soporte del equipo. En este tema se explicará el mecanismo genérico que permite registrar ganchos de recursos. En el tema Ganchos de modificación de recursos del equipo hallará una explicación de cómo utiliza el equipo estos ganchos.
Este gancho permite que el conector del suministrador y sus proveedores controlen cómo están implementados los movimientos y las supresiones de los recursos. El gancho incluye capacidad para impedir que tengan lugar estas operaciones. Los implementadores pueden proporcionar implementaciones alternativas para mover o suprimir archivos, carpetas y proyectos.
El conector del equipo utiliza el punto de extensión org.eclipse.core.resources.moveDeleteHook para registrar el correspondiente gancho:
<extension point="org.eclipse.core.resources.moveDeleteHook" id="MoveDeleteHook"> <moveDeleteHook class="org.eclipse.team.internal.core.MoveDeleteManager"/> </extension>
La clase suministrada debe implementar la interfaz IMoveDeleteHook, a la que llama la plataforma siempre que se mueve o suprime un recurso. El conector del equipo instala un gestor de ganchos de mover/suprimir que puede determinar qué proveedor del equipo está gestionando un recurso y luego invocar su gancho específico.
Nota: el gancho de mover/suprimir se ha diseñado específicamente para que lo utilice el conector del núcleo del equipo y otros clientes de proveedores de depósitos del equipo. No está pensando para uso general. Los proveedores del equipo no deben instalar el gancho con el punto de extensión, sino implementarlo en la clase RepositoryProvider. En el tema Ganchos de modificación de recursos del equipo hallará más información sobre cómo se utilizan estos ganchos.
También existe la posibilidad de que los proveedores de depósitos de equipo tengan que impedir la edición o el guardado de un archivo o intervenir en estas operaciones. Para ello, el conector del equipo utiliza el punto de extensión org.eclipse.core.resources.fileModificationValidator con objeto de registrar un validador al que se llama siempre que se vaya a modificar un recurso.
<extension point="org.eclipse.core.resources.fileModificationValidator" id="FileValidator"> <fileModificationValidator class="org.eclipse.team.internal.core.FileModificationValidatorManager"/> </extension>
La clase suministrada debe implementar la interfaz IFileModificationValidator, a la que la plataforma llama siempre que se guarde o se abra un recurso. El conector del equipo instala un gestor de modificaciones de archivo que puede determinar qué proveedor del equipo está gestionando un recurso y luego invocar el validador específico.
Nota: el gancho de validador de modificación de recurso se ha diseñado específicamente para que lo utilice el conector del núcleo del equipo. No está pensando para uso general. Los proveedores del equipo no deben instalar el gancho con el punto de extensión, sino implementarlo en la clase RepositoryProvider. En el tema Ganchos de modificación de recursos del equipo hallará más información sobre cómo se utilizan estos ganchos.