Παροχέας χώρου αποθήκευσης συνεργασίας

org.eclipse.team.core.repository

2.0

Η πρόσθετη λειτουργία "Συνεργασία" περιέχει την έννοια των χώρων αποθήκευσης. Σκοπός ενός χώρου αποθήκευσης είναι να παρέχει υποστήριξη για την κοινοχρησία πόρων μεταξύ των μελών που συμμετέχουν σε μια συνεργασία. Οι χώροι αποθήκευσης ρυθμίζονται ειδικά για κάθε έργο. Μόνο ένας χώρος αποθήκευσης μπορεί να αντιστοιχιστεί κάθε φορά σε ένα έργο.

Οι χώροι αποθήκευσης οι οποίοι επεκτείνουν αυτό το σημείο αποθήκευσης παρέχουν υλοποιήσεις για κοινούς κανόνες ειδικούς του χώρου αποθήκευσης για τροποποιήσεις, μετακινήσεις και διαγραφές πόρων. Για περισσότερες λεπτομέρειες, δείτε τις διεπαφές IFileModificationValidator και MoveDeleteHook.

Ένα είδος χώρου αποθήκευσης μπορεί επίσης να προσδιοριστεί προκειμένου να παρέχει λειτουργίες που δεν είναι ειδικές για ένα έργο, όπως η org.eclipse.team.core.ProjectSetCapability.

Προαιρετικά, μπορεί να καθοριστεί ένα είδος παροχέα χώρου αποθήκευσης το οποίο μπορεί να εισάγει έργα από ένα δεύτερο παροχέα, στην περίπτωση που η πρόσθετη λειτουργία του δεύτερου παροχέα δεν είναι διαθέσιμη στην τρέχουσα εγκατάσταση. Η δυνατότητα αυτή παρέχεται ως μέσο υποστήριξης της μετάβασης από την υλοποίηση ενός παροχέα σε άλλον, όπου η επαναχρησιμοποίηση της ίδιας ταυτότητας για δύο παροχείς δεν είναι δυνατή.

Ένα είδος παροχέα χώρου αποθήκευσης μπορεί επίσης να προσδιορίσει μία ή περισσότερες διαδρομές μετα-αρχείων (που οριοθετούνται με κόμμα), που σχετίζονται με μια γονική θέση υποδοχής. Εάν ένα μη κοινόχρηστο έργο ή φάκελος περιέχει αρχεία τα οποία ταιριάζουν σε όλες τις διαδρομές μετα-αρχείων που συσχετίζονται με τον ορισμό ενός χώρου αποθήκευσης, τότε καλείται η μέθοδος RepositoryProviderType#metaFilesDetected με τη γονική θέση υποδοχής ως όρισμα. Αυτό γίνεται ώστε το είδος χώρου αποθήκευσης να μπορεί να σημειώσει τα αρχεία ως ιδιωτικά σε μια συνεργασία και να μπορεί να τα καταστήσει επίσης κοινόχρηστα. Για περισσότερες λεπτομέρειες, δείτε το javadoc της προαναφερθείσας μεθόδου.

<!ELEMENT extension (repository)>

<!ATTLIST extension

point CDATA #REQUIRED>


<!ELEMENT repository EMPTY>

<!ATTLIST repository

id               CDATA #IMPLIED

class            CDATA #REQUIRED

typeClass        CDATA #IMPLIED

canImportId      CDATA #IMPLIED

metaFilePaths    CDATA #IMPLIED

fileSystemScheme CDATA #IMPLIED>


<extension point=

"org.eclipse.team.core.repository"

>

<repository class=

"org.eclipse.myprovider.MyRepositoryProvider"

typeClass=

"org.eclipse.myprovider.MyRepositoryProviderType"

id=

"org.eclipse.myprovider.myProviderID"

canImportId=

"org.eclipse.myprovider.myOldProviderID"

metaFilePaths=

".meta/files,.meta/version"

>

</repository>

</extension>

Η τιμή του γνωρίσματος class πρέπει να αντιστοιχεί σε μια υποκλάση της org.eclipse.team.core.RepositoryProvider και η τιμή του γνωρίσματος typeClass πρέπει να αντιστοιχεί σε μια υποκλάση της org.eclipse.team.core.RepositoryProviderType

Η παρεχόμενη υλοποίηση της RepositoryProvider παρέχει μεθόδους βοήθειας και έναν κοινό κώδικα για την αντιστοίχιση και την αναίρεση της αντιστοίχισης παροχέων σε έργα. Η προαιρετική RepositoryProviderType παρέχει την εισαγωγή και εξαγωγή ενός συνόλου έργων μέσω μιας ProjectSetCapability.