Modellprovider

org.eclipse.core.resources.modelProviders

3.2

En modelleverantör har två ändamål: För det första kan den användas till att gruppera resursavbildningarna för en enda modell i syfte att utföra åtgärder, visning osv. Dessutom kan den användas till att avbilda en uppsättning av filsystemsresurser till de resursavbildningar som beskriver hur en modell avbildar till resurser.

<!ELEMENT extension (modelProvider , extends-model* , enablement)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT modelProvider EMPTY>

<!ATTLIST modelProvider

class CDATA #REQUIRED>


<!ELEMENT extends-model EMPTY>

<!ATTLIST extends-model

id CDATA #REQUIRED>


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

Ett allmänt rotelement. Elementet kan användas i en utökningspunkt till att definiera enablement-uttrycket för den. De underordnade objekten till ett enablement-uttryck kombineras med hjälp av operatorn and.



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

Elementet representerar ett NOT-uttryck för resultatet från utvärderingen av underelementsuttrycken.



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

Det här elementet representerar en AND-åtgärd för resultatet från utvärderingen av underelementuttrycken.



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

Det här elementet representerar en OR-åtgärd för resultatet från utvärderingen av underelementuttrycken.



<!ELEMENT instanceof EMPTY>

<!ATTLIST instanceof

value CDATA #REQUIRED>

Elementet används till att göra en instanceof-kontroll av det aktuella objektet. Uttrycket returnerar EvaluationResult.TRUE om objektstypen är en undertyp till den typ som angavs av attributvärdet. I annat fall returneras EvaluationResult.FALSE.



<!ELEMENT test EMPTY>

<!ATTLIST test

property CDATA #REQUIRED

args     CDATA #IMPLIED

value    CDATA #IMPLIED>

Elementet används till att utvärdera egenskapsläget för det aktuella objektet. Uppsättningen egenskaper som kan testas kan utökas med hjälp av utökningspunkten för egenskapstestfunktionen. Testuttrycket returnerar EvaluationResult.NOT_LOADED om den aktuella egenskapstestfunktionen inte har lästs in ännu.



<!ELEMENT systemTest EMPTY>

<!ATTLIST systemTest

property CDATA #REQUIRED

value    CDATA #REQUIRED>

Testar en systemegenskap genom att anropa metoden System.getProperty method och jämför resultatet med det värde som angetts via värdeattributet.



<!ELEMENT equals EMPTY>

<!ATTLIST equals

value CDATA #REQUIRED>

Elementet används till att göra en equals-kontroll av det aktuella objektet. Uttrycket returnerar EvaluationResult.TRUE om objektet är detsamma som det värde som tillhandahålls av attributvärdet. I annat fall returneras EvaluationResult.FALSE.



<!ELEMENT count EMPTY>

<!ATTLIST count

value CDATA #REQUIRED>

Elementet används till att testa antalet element i samlingen.



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

<!ATTLIST with

variable CDATA #REQUIRED>

Det här elementet ändrar det objekt som ska kontrolleras för alla underordnade element till det objekt som refereras till av den angivna variabeln. Om variabeln inte kan lösas returnerar uttrycket ExpressionException när det utvärderas. De underordnade objekten till ett with-uttryck kombineras med hjälp av operatorn and.



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

<!ATTLIST resolve

variable CDATA #REQUIRED

args     CDATA #IMPLIED>

Det här elementet ändrar det objekt som ska kontrolleras för alla underordnade element till det objekt som refereras till av den angivna variabeln. Om variabeln inte kan lösas returnerar uttrycket ExpressionException när det utvärderas. De underordnade objekten till ett with-uttryck kombineras med hjälp av operatorn and.



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

<!ATTLIST adapt

type CDATA #REQUIRED>

Det här elementet används till anpassa det aktuella objektet till den typ som angavs av attributtypen. Uttrycket returneras som inte inläst om adaptern eller den refererade typen inte har lästs in än. Det returnerar ett ExpressionException under utvärdering om samma typnamn inte finns alls. De underordnade objekten till ett adapt-uttryck kombineras med hjälp av operatorn and.



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

<!ATTLIST iterate

operator (or|and) >

Det här elementet används till att räkna stegvis över en variabel som är av typen java.util.Collection. Om det aktuella objektet inte är av typen java.util.Collection returneras ExpressionException när uttrycket utvärderas.



Följande är ett exempel på hur utökningspunkten modelProvider används. (I filen plugin.xml.)
   

<extension id=

"modelProvider"

name=

"Biblioteksmodellevatantören"

point=

"org.eclipse.core.resources.modelProviders"

>

<modelProvider class=

"org.eclipse.examples.library.LibraryModelProvider"

name=

"Biblioteksmodellevatantören"

/>

<extends-model id=

"org.eclipse.core.resources.modelProvider"

/>

<enablement>

<with variable=

"affectedNatures"

>

<iterate operator=

"or"

>

<equals value=

"org.eclipse.team.examples.library.nature"

/>

</iterate>

</with>

<with variable=

"element"

>

<instanceof value=

"org.eclipse.core.resources.IFile"

/>

</with>

</enablement>

</extension>

Värdet för klassattributet måste motsvara en implementation av org.eclipse.core.resources.mapping.ModelProvider.

Plattformen själv har inga fördefinierade modelleverantörer. Specifika produktinstallationer kan inkludera de modelleverantörer som behövs.