Επεξεργαστής ταχείας επιδιόρθωσης

org.eclipse.jdt.ui.quickFixProcessors

Σημείο επέκτασης από την έκδοση 3.0. Στοιχείο handledMarkerTypes από την έκδοση 3.2.

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

Από την έκδοση 3.2, μια επέκταση μπορεί να προσδιορίζει τα είδη δεικτών προβλημάτων που μπορεί να χειριστεί. Θα επεξεργάζεται μόνο προβλήματα των συγκεκριμένων ειδών. Αν δεν προσδιοριστούν τα είδη δείκτη των οποίων θα γίνεται διαχείριση, ο επεξεργαστής θα λαμβάνει μόνο προβλήματα των ειδών org.eclipse.jdt.core.problem, org.eclipse.jdt.core.buildpath_problem και org.eclipse.jdt.core.task (συμβατά με τη συμπεριφορά προηγούμενων εκδόσεων από την 3.2).

Αυτό το σημείο επέκτασης υποστηρίζει το προσδιοριστικό enablement. Οι ιδιότητες προς δοκιμή είναι οι εξής:

  • compilationUnit: είδος ICompilationUnit; η μονάδα μεταγλώττισης στην οποία εφαρμόζεται η λειτουργία ταχείας βοήθειας
  • projectNatures: είδος Collection; όλες οι φύσεις έργου του τρέχοντος έργου
  • sourceLevel: είδος String; η συμβατότητα με τον πρωτογενή κώδικα του τρέχοντος έργου
  • <!ELEMENT extension (quickFixProcessor*)>

    <!ATTLIST extension

    point CDATA #REQUIRED

    id    CDATA #IMPLIED

    name  CDATA #IMPLIED>


    <!ELEMENT quickFixProcessor (enablement , handledMarkerTypes*)>

    <!ATTLIST quickFixProcessor

    id    CDATA #REQUIRED

    name                CDATA #IMPLIED

    class               CDATA #REQUIRED

    requiredSourceLevel CDATA #IMPLIED>


    <!ELEMENT handledMarkerTypes (markerType+)>

    Προσδιορίζει τα είδη δεικτών για τα προβλήματα που μπορεί να χειριστεί αυτός ο επεξεργαστής ταχείας επιδιόρθωσης. Αν δεν προσδιοριστούν τα είδη δείκτη των οποίων θα γίνεται διαχείριση, ο επεξεργαστής θα λαμβάνει προβλήματα των ειδών org.eclipse.jdt.core.problem, org.eclipse.jdt.core.buildpath_problem και org.eclipse.jdt.core.task.



    <!ELEMENT markerType EMPTY>

    <!ATTLIST markerType

    id CDATA #REQUIRED>


    <!ELEMENT enablement (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

    Γενικό κεντρικό στοιχείο. Το στοιχείο μπορεί να χρησιμοποιηθεί σε ένα σημείο επέκτασης για τον ορισμό της έκφρασης ενεργοποίησης. Τα θυγατρικά στοιχεία μιας έκφρασης ενεργοποίησης συνδυάζονται με τη χρήση του τελεστή "and".



    <!ELEMENT not (not | and | or | instanceof | test | systemTest | equals | count | with | resolve | adapt | iterate)>

    Το στοιχείο αυτό εκφράζει ένα λογικό τελεστή ΝΟΤ στο αποτέλεσμα της αποτίμησης της έκφρασης του υποστοιχείου του.



    <!ELEMENT and (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

    Το στοιχείο αυτό εκφράζει ένα λογικό τελεστή AND στο αποτέλεσμα της αποτίμησης των εκφράσεων των υποστοιχείων του.



    <!ELEMENT or (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

    Το στοιχείο αυτό εκφράζει ένα λογικό τελεστή OR στο αποτέλεσμα της αποτίμησης των εκφράσεων των υποστοιχείων του.



    <!ELEMENT instanceof EMPTY>

    <!ATTLIST instanceof

    value CDATA #REQUIRED>

    Αυτό το στοιχείο χρησιμοποιείται για την εκτέλεση μιας χρήσης ελέγχου του εστιαζόμενου αντικειμένου. Η έκφραση επιστρέφει EvaluationResult.TRUE αν το είδος του αντικειμένου αποτελεί υπο-είδος του του είδους που προσδιορίζεται από την τιμή γνωρίσματος. Διαφορετικά, επιστρέφει EvaluationResult.FALSE.



    <!ELEMENT test EMPTY>

    <!ATTLIST test

    property CDATA #REQUIRED

    args     CDATA #IMPLIED

    value    CDATA #IMPLIED>

    Αυτό το στοιχείο χρησιμοποιείται για την αποτίμηση γνωρίσματος state του εστιαζόμενου αντικειμένου. Το σύνολο των ιδιοτήτων που μπορούν να τεθούν υπό δοκιμή μπορεί να επεκταθεί με τη χρήση του σημείου επέκτασης λειτουργίας δοκιμής ιδιοτήτων. Η έκφραση δοκιμής επιστρέφει την EvaluationResult.NOT_LOADED αν η λειτουργία δοκιμής ιδιοτήτων που εκτελεί στην ουσία τη δοκιμή δεν έχει φορτωθεί ακόμα.



    <!ELEMENT systemTest EMPTY>

    <!ATTLIST systemTest

    property CDATA #REQUIRED

    value    CDATA #REQUIRED>

    Δοκιμάζει μια ιδιότητα συστήματος καλώντας τη μέθοδο System.getProperty και συγκρίνει το αποτέλεσμα με την τιμή που καθορίζεται μέσω του γνωρίσματος value.



    <!ELEMENT equals EMPTY>

    <!ATTLIST equals

    value CDATA #REQUIRED>

    Αυτό το στοιχείο χρησιμοποιείται για την εκτέλεση ενός ελέγχου ισοδυναμίας (equals) του εστιαζόμενου αντικειμένου. Η έκφραση επιστρέφει EvaluationResult.TRUE αν το αντικείμενο ισούται με την τιμή που παρέχεται από την τιμή γνωρίσματος. Διαφορετικά, επιστρέφει EvaluationResult.FALSE.



    <!ELEMENT count EMPTY>

    <!ATTLIST count

    value CDATA #REQUIRED>

    Αυτό το στοιχείο χρησιμοποιείται για τη δοκιμή του αριθμού των στοιχείων σε μια συλλογή.



    <!ELEMENT with (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

    <!ATTLIST with

    variable CDATA #REQUIRED>

    Αυτό το στοιχείο αλλάζει το αντικείμενο προς επιθεώρηση για όλα τα θυγατρικά στοιχεία του με το αντικείμενο στο οποίο γίνεται αναφορά από τη δεδομένη μεταβλητή. Αν η μεταβλητή δεν μπορεί να αναλυθεί, τότε η έκφραση θα εμφανίσει ένα ExpressionException κατά την αποτίμησή του. Τα θυγατρικά στοιχεία μιας έκφρασης "with" συνδυάζονται με τη χρήση του τελεστή "and".



    <!ELEMENT resolve (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

    <!ATTLIST resolve

    variable CDATA #REQUIRED

    args     CDATA #IMPLIED>

    Αυτό το στοιχείο αλλάζει το αντικείμενο προς επιθεώρηση για όλα τα θυγατρικά στοιχεία του με το αντικείμενο στο οποίο γίνεται αναφορά από τη δεδομένη μεταβλητή. Αν η μεταβλητή δεν μπορεί να αναλυθεί, τότε η έκφραση θα εμφανίσει ένα ExpressionException κατά την αποτίμησή του. Τα θυγατρικά στοιχεία μιας έκφρασης "with" συνδυάζονται με τη χρήση του τελεστή "and".



    <!ELEMENT adapt (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

    <!ATTLIST adapt

    type CDATA #REQUIRED>

    Αυτό το στοιχείο χρησιμοποιείται για την προσαρμογή του εστιαζόμενου στο είδος που καθορίζεται από το είδος γνωρίσματος. Η έκφραση επιστρέφει "not loaded" αν ο προσαρμογέας ή το είδος στο οποίο γίνεται παραπομπή δεν έχει φορτωθεί ακόμα. Εμφανίζει ExpressionException κατά την αποτίμηση αν το όνομα είδους δεν υπάρχει. Τα θυγατρικά στοιχεία μιας έκφρασης "adapt" συνδυάζονται με τη χρήση του τελεστή "and".



    <!ELEMENT iterate (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

    <!ATTLIST iterate

    operator (or|and) >

    Αυτό το στοιχείο χρησιμοποιείται για την επαναληπτική προσέγγιση σε μια μεταβλητή του τύπου java.util.Collection. Αν το εστιαζόμενο αντικείμενο δεν είναι του τύπου java.util.Collection, τότε εμφανίζεται μια ExpressionException κατά την αποτίμηση της έκφρασης.



    Παρακάτω δίνεται ένα παράδειγμα συνεισφοράς επεξεργαστή ταχείας επιδιόρθωσης:

     

    <extension point=

    "org.eclipse.jdt.ui.quickFixProcessors"

    >

    <quickFixProcessor id=

    "AdvancedQuickFixProcessor"

    name=

    "Advanced Quick Fix Processor"

    requiredSourceLevel=

    "1.5"

    class=

    "com.example.AdvancedQuickFixProcessor"

    >

    <handledMarkerTypes>

    <markerType id=

    "org.eclipse.myplugin.audits"

    />

    </handledMarkerTypes>

    <enablement>

    <with variable=

    "projectNatures"

    >

    <iterate operator=

    "or"

    >

    <equals value=

    "org.eclipse.jdt.core.javanature"

    />

    </iterate>

    </with>

    </enablement>

    </quickFixProcessor>

    </extension>

    Η κλάση από συνεισφορά πρέπει να υλοποιεί τον org.eclipse.jdt.ui.text.java.IQuickFixProcessor