Záchytné body úprav prostředků

Dosud jsme předpokládali, že se API prostředků používá k úpravě prostředků, které se nacházejí v systému souborů uživatele.  To je skutečně základní struktura pracovního prostoru, je však také možné, že plug-in přidává schopnosti manipulovat prostředky, které jsou spravovány někde jinde.  Například moduly plug-in Týmová podpora této platformy přidávají schopnost pracovat s prostředky, které jsou spravovány úložištěm pro správu verzí.

API prostředků zahrnuje schopnosti, které byly přidané výslovně pro zpřístupnění modulů plug-in týmové podpory a modulů plug-in, jež implementují poskytovatele úložišť s využitím této týmové podpory.  Následující diskuse se zabývá generickým mechanizmem registrace záchytných bodů prostředků.  Informace o tom, jak jsou tyto záchytné body využívány týmem naleznete v tématu Implementace poskytovatele úložiště.  

Záchytné body přesunu/odstranění prostředků

Tento záchytný bod umožňuje týmovému modulu plug-in a jeho poskytovatelům kontrolovat, jak jsou implementovány přesuny a odstranění prostředků.  Záchytný bod obsahuje schopnost zabránit provedení těchto operací.  Implementátory mohou poskytnout alternativní implementace pro přesun nebo odstraňování souborů, složek a projektů. 

Plug-in týmu používá k registraci svého záchytného bodu bod rozšíření org.eclipse.core.resources.moveDeleteHook:

<extension point="org.eclipse.core.resources.moveDeleteHook" id="MoveDeleteHook">
	<moveDeleteHook class="org.eclipse.team.internal.core.MoveDeleteManager"/>
</extension>

Dodaná třída musí implementovat třídu IMoveDeleteHook, kterou platforma volá, kdykoli je přesunut nebo odstraněn nějaký prostředek.  Plug-in týmu instaluje správce záchytných bodů pro přesun a odstranění, který dokáže určit, který poskytovatel týmu spravuje který prostředek, a vyvolat příslušný záchytný bod.

Validátory změn souborů

Také je možné, že poskytovatelé úložišť týmů budou potřebovat zabránit úpravě nebo uložení nějakého souboru, případně do těchto operací zasáhnout.  Plug-in týmu to dokáže s pomocí bodu rozšíření org.eclipse.core.resources.fileModificationValidator, který použije k registraci validátoru, jenž je volán, kdykoli má být upraven nějaký prostředek.

<extension point="org.eclipse.core.resources.fileModificationValidator" id="FileValidator">
	<fileModificationValidator class="org.eclipse.team.internal.core.FileModificationValidatorManager"/>
    </extension>

Dodaná třída musí implementovat IFileModificationValidator, který platforma volá, kdykoli je prostředek ukládán nebo otevírán.   Plug-in týmu instaluje správce úprav souborů, který dokáže určit, který poskytovatel týmu spravuje který prostředek, a vyvolat příslušný validátor.

Obecný týmový záchytný bod

Poskytovatelé úložišť často požadují zapojení k přídavným činnostem pracovního prostoru kvůli uplatnění zvláštních omezení nebo přizpůsobení chování pracovního prostoru. Bod rozšíření org.eclipse.core.resources.teamHook poskytuje několik dalších funkcí specializovaných pro týmové poskytovatele. Toto zapojení umožní týmovému poskytovateli rozhodovat o přidělování přístupu ke složkám a souborům pro jednotlivé projekty. Některé systémy úložišť uplatňují přísná pravidla fyzické struktury projektů na disku a nejsou schopny obsluhovat prostředky neveřejných umístění.

Týmový záchytný bod umožňuje poskytovateli úložiště dodávat továrnu pravidla plánování, která budou používána pro všechny činnosti pracovního prostoru. Vždy při volání metody rozhraní API, která určitým způsobem upravuje pracovní prostor, pracovní prostor načítá pravidlo plánování. Toto pravidlo plánování zabraňuje ostatním vláknům v úpravách těchto prostředků během volání metody API. Provádí-li poskytovatel úložiště další úkony uvnitř validátoru úpravy souboru nebo pokud přesouvá/odstraňuje záchytný bod, musí pracovnímu prostoru sdělit rovněž přídavná pravidla plánování, která bude potřebovat. Další informace o používání pravidel plánování v pracovním prostoru viz Dávkové zpracování prostředků.

Třída poskytnutá pro týmový záchytný bod musí implementovat TeamHook. Modul plug-in týmu instaluje jediný týmový záchytný bod, který je schopen určit týmového poskytovatele, který spravuje prostředek, a spustit svůj záchytný bod.

Poznámka:  Všechny tyto tři záchytné body jsou určeny pouze pro použití modulem plug-in Team Core.  Nejsou určeny k obecnému použití.  Poskytovatelé týmů by neměli k instalaci záchytných bodů používat tyto body rozšíření. Místo toho by měli implementovat své záchytné body ve své třídě poskytovatele úložiště.   Další informace o použití těchto záchytných bodů naleznete v tématu Záchytné body pro úpravy prostředků týmu.