Hook di modifica delle risorse
La maggior parte delle funzioni interessanti associate a un fornitore di repository viene eseguita quando l'utente utilizza le risorse del progetto configurate per il fornitore.
Per poter monitorare le modifiche apportate dall'utente a una risorsa, il fornitore
può implementare gli hook di modifica delle risorse. Il plug-in delle risorse fornisce tali hook come punti di estensione.
Nella documentazione relativa a IMoveDeleteHook
e IFileModificationValidator
sono riportati i dettagli relativi all'implementazione di tali hook.
Il plug-in di team ottimizza e semplifica l'associazione dell'hook alle risorse
appropriate registrando gli hook generici nel plug-in delle risorse.
Tali hook si limitano a cercare una determinata risorsa nel fornitore di repository in modo da ottenerne l'hook.
Ciò offre il vantaggio di dover richiamare un solo hook di
fornitore anziché registrare per ogni implementazione di fornitore un hook
che deve prima verificare se la risorsa è gestita dal fornitore.
Per il plug-in ciò significa che occorre fornire tutti gli hook necessari sostituendo
i metodi in RepositoryProvider. L'implementazione predefinita di questi metodi restituisce null, indicando in tale modo che non è necessario alcun hook.
- getMoveDeleteHook - restituisce un IMoveDeleteHook
appropriato per il fornitore. Questo consente ai fornitori di controllare
il modo in cui vengono eseguite le operazioni di spostamento ed eliminazione, fornendo anche la possibilità di impedirne l'esecuzione.
Gli implementatori possono fornire implementazioni alternative per lo spostamento o l'eliminazione di file, cartelle e progetti.
Il client CVS utilizza questo hook per monitorare le eliminazioni delle cartelle e accertarsi che i file contenuti nelle cartelle eliminate siano ricordati in modo che in un secondo momento possano essere eliminati dal repository, se lo si desidera.
- getFileModificationValidator - restituisce un IFileModificationValidator
appropriato al fornitore. Questo hook consente ai fornitori di verificare preliminarmente
le eventuali operazioni di modifica o di salvataggio eseguite sui file. Generalmente è necessario
quando un fornitore di repository desidera implementare creazioni versioni pessimistiche. Nella creazione versioni pessimistica, è necessario estrarre un file prima di modificarlo e un solo
client può eseguire l'estrazione in un dato momento. Tale creazione può essere implementata estraendo un file (qualora non risulti già estratto) ogni volta che viene modificato e archiviandolo nuovamente in seguito al salvataggio.
Poiché CVS utilizza uno schema di creazione versioni ottimistico, non implementa questo hook.
