Το σημείο επέκτασης φύσεων επιτρέπει στους μεταγραφείς των φύσεων να καταχωρούν την υλοποίηση της αντίστοιχης φύσης χρησιμοποιώντας ένα συμβολικό όνομα, το οποίο στη συνέχεια χρησιμοποιείται από το χώρο εργασίας για την εύρεση και τη ρύθμιση των φύσεων. Το συμβολικό όνομα είναι η ταυτότητα της επέκτασης της φύσης. Κατά τον ορισμό μιας επέκτασης φύσης, συνιστάται στους χρήστες να συμπεριλαμβάνουν μια αναγνώσιμη από τον άνθρωπο τιμή για το γνώρισμα "name", το οποίο περιγράφει τη σημασία της και μπορεί να εμφανίζεται στους χρήστες.
Οι φύσεις μπορούν να προσδιορίζουν περιορισμούς σχέσεων με άλλες φύσεις. Ο περιορισμός "one-of-nature" ορίζει ότι ανά πάσα στιγμή, σε κάθε έργο μπορεί να υπάρχει το πολύ μία φύση από ένα δεδομένο σύνολο. Έτσι δίνεται η δυνατότητα αμοιβαίας εξαίρεσης ανάμεσα σε φύσεις που δεν είναι συμβατές μεταξύ τους. Ο περιορισμός "requires-nature" ορίζει μια εξάρτηση από μία άλλη φύση. Όταν σε ένα έργο προστίθεται μια φύση, τότε πρέπει να προστεθούν επίσης όλες οι απαιτούμενες φύσεις. Η πραγματοποίηση και αναίρεση των ρυθμίσεων των φύσεων εκτελείται με τέτοιο τρόπο, ώστε να εξασφαλίζεται η πραγματοποίηση και η αναίρεση των ρυθμίσεων των απαιτούμενων φύσεων πριν και μετά από αυτές αντίστοιχα. Για το λόγο αυτό, δεν επιτρέπονται κυκλικές εξαρτήσεις ανάμεσα στις φύσεις.
Δεν είναι δυνατή η προσθήκη φύσεων σε ένα έργο ή η αφαίρεση φύσεων από ένα έργο, εάν η αλλαγή αυτή μπορεί να παραβιάζει τους περιορισμούς οι οποίοι ικανοποιούνταν προηγουμένως. Εάν ρυθμιστεί η φύση σε ένα έργο, αλλά αργότερα βρεθεί ότι οι περιορισμοί της δεν ικανοποιούνται, τότε η φύση αυτή, καθώς και όλες οι απαιτούμενές της, σημειώνονται ως απενεργοποιημένη, αλλά παραμένουν στο έργο. Αυτό μπορεί να συμβεί, για παράδειγμα, όταν μια απαιτούμενη φύση δεν συμπεριλαμβάνεται στην εγκατάσταση. Οι φύσεις που δεν συμπεριλαμβάνονται στην εγκατάσταση και οι φύσεις που συμπεριλαμβάνονται σε κύκλους εξάρτησης, σημειώνονται επίσης ως απενεργοποιημένες.
Οι φύσεις μπορούν επίσης να προσδιορίσουν τα εργαλεία αυξητικής δόμησης έργου, εάν υπάρχουν, που ρυθμίζονται από αυτές. Με τις πληροφορίες αυτές, ο χώρος εργασίας θα εξασφαλίσει ότι τα εργαλεία δόμησης θα εκτελούνται μόνο όταν υπάρχει η αντίστοιχη φύση και είναι ενεργοποιημένη στο έργο στο οποίο έχει ενσωματωθεί. Εάν μια φύση αφαιρεθεί από ένα έργο, αλλά η μέθοδος αναίρεσης των ρυθμίσεων της φύσης δεν την αφαιρέσει από τα αντίστοιχα εργαλεία δόμησης, ο χώρος εργασίας θα αφαιρέσει αυτόματα αυτά τα εργαλεία δόμησης από την προδιαγραφή. Δύο φύσεις δεν μπορούν να προσδιορίζουν στον κώδικά τους το ίδιο εργαλείο αυξητικής δόμησης έργου.
Οι φύσεις έχουν επίσης τη δυνατότητα να μην επιτρέπουν τη δημιουργία διασυνδεδεμένων πόρων σε έργα με τα οποία συσχετίζονται. Ορίζοντας το γνώρισμα allowLinking
ως "false", μια φύση μπορεί να δηλώσει ότι δεν μπορούν να δημιουργηθούν διασυνδεδεμένοι πόροι. Η λειτουργία αυτή είναι νέα στην έκδοση 2.1.
Από την έκδοση 3.1 και έπειτα, οι φύσεις μπορούν να δηλώνουν συσχέτιση με διάφορα είδη περιεχομένου, επηρεάζοντας τον τρόπο με τον οποίο πραγματοποιείται ο προσδιορισμός είδους περιεχομένου για αρχεία του χώρου εργασίας. Σε περίπτωση διενέξεων (δύο ή περισσότερα είδη περιεχομένου κρίνονται εξίσου κατάλληλα για ένα δεδομένο αρχείο), θα επιλεχθεί το είδος περιεχομένου που σχετίζεται με μια από τις φύσεις που έχουν ρυθμιστεί για το αντίστοιχο έργο.
<!ELEMENT extension (runtime , (one-of-nature | requires-nature | builder | content-type)* , options?)>>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #REQUIRED
name CDATA #IMPLIED>
<!ATTLIST run
class CDATA #REQUIRED>
<!ELEMENT parameter EMPTY>
<!ATTLIST parameter
name CDATA #REQUIRED
value CDATA #REQUIRED>
<!ELEMENT one-of-nature EMPTY>
<!ATTLIST one-of-nature
id CDATA #REQUIRED>
<!ELEMENT requires-nature EMPTY>
<!ATTLIST requires-nature
id CDATA #REQUIRED>
<!ELEMENT builder EMPTY>
<!ATTLIST builder
id CDATA #REQUIRED>
<!ELEMENT options EMPTY>
<!ATTLIST options
allowLinking (true | false) >
<!ELEMENT content-type EMPTY>
<!ATTLIST content-type
id CDATA #REQUIRED>
Εάν αυτές οι επεκτάσεις έχουν οριστεί σε μια πρόσθετη λειτουργία με την ταυτότητα "com.xyz.coolplugin", το πλήρες όνομα των φύσεων αυτών θα είναι "com.xyz.coolplugin.fireNature", "com.xyz.coolplugin.waterNature" και "com.xyz.coolplugin.snowNature".<extension id=
"fireNature"
name=
"Fire Nature"
point=
"org.eclipse.core.resources.natures"
>
<runtime>
<run class=
"com.xyz.natures.Fire"
/>
</runtime>
<one-of-nature id=
"com.xyz.stateSet"
/>
<options allowLinking=
"false"
/>
</extension>
<extension id=
"waterNature"
name=
"Water Nature"
point=
"org.eclipse.core.resources.natures"
>
<runtime>
<run class=
"com.xyz.natures.Water"
/>
</runtime>
<one-of-nature id=
"com.xyz.stateSet"
/>
</extension>
<extension id=
"snowNature"
name=
"Snow Nature"
point=
"org.eclipse.core.resources.natures"
>
<runtime>
<run class=
"com.xyz.natures.Snow"
>
<parameter name=
"installBuilder"
value=
"true"
/>
</run>
</runtime>
<requires-nature id=
"com.xyz.coolplugin.waterNature"
/>
<builder id=
"com.xyz.snowMaker"
/>
</extension>
Copyright (c) 2002, 2005 IBM Corporation και άλλων.
Με την επιφύλαξη παντός δικαιώματος. Αυτό το πρόγραμμα και τα συνοδευτικά του υλικά διατίθενται βάσει των όρων της κοινής άδειας χρήσης Eclipse Public License v1.0 που συνοδεύει αυτή τη διανομή και διατίθεται στην ακόλουθη διεύθυνση: http://www.eclipse.org/legal/epl-v10.html.