Muistin hahmonnukset

org.eclipse.debug.ui.memoryRenderings

3.1 - korvaa memoryRenderingTypes-laajennuspisteen, joka oli kokeellinen laajennuspiste versiossa 3.0

Tämän laajennuspisteen avulla lisäosat voivat lisätä pakollisia muistilohkojen hahmonnuksia ja sitoa niihin muistilohkoja. Hahmonnus voi esimerkiksi kääntää muistilohkon kooditavut ASCII-merkeiksi.

<!ELEMENT extension (renderingType* | renderingBindings*)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT renderingType EMPTY>

<!ATTLIST renderingType

name  CDATA #REQUIRED

id    CDATA #REQUIRED

class CDATA #REQUIRED>

Tämän elementin avulla määritetään hahmonnuslaji.



<!ELEMENT renderingBindings (enablement*)>

<!ATTLIST renderingBindings

renderingIds CDATA #IMPLIED

primaryId    CDATA #IMPLIED

class        CDATA #IMPLIED

defaultIds   CDATA #IMPLIED>

Tämä elementti määrittää muistilohkojen ja käytettävissä olevien hahmonnusten väliset sidonnat.



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

Yleinen juurielementti. Elementtiä voi käyttää laajennuspisteen sisällä määrittämään sen käyttöönottolausekkeen. Käyttöönottolausekkeen aliobjektit yhdistetään AND-operaattorin avulla.



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

Tämä elementti edustaa NOT-operaatiota sen alielementin lausekkeen tuloksen arvioinnissa.



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

Tämä elementti edustaa AND-operaatiota sen kaikkien alielementtien lausekkeiden tuloksen arvioinnissa.



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

Tämä elementti edustaa OR-operaatiota sen kaikkien alielementtilausekkeiden tuloksen arvioinnissa.



<!ELEMENT instanceof EMPTY>

<!ATTLIST instanceof

value CDATA #REQUIRED>

Tätä elementtiä käytetään toteuttamaan kohteena olevan objektin ilmentymätarkistus. Lauseke palauttaa arvon EvaluationResult.TRUE, jos objektin laji on määritteen arvossa määritetyn lajin alilaji. Muussa tapauksessa palautuu arvo EvaluationResult.FALSE.



<!ELEMENT test EMPTY>

<!ATTLIST test

property CDATA #REQUIRED

args     CDATA #IMPLIED

value    CDATA #IMPLIED>

Tämän elementin avulla arvioidaan kohteena olevan objektin ominaisuustila. Testattavissa olevien ominaisuuksien joukkoa voi laajentaa käyttämällä ominaisuuksien testauksen laajennuspistettä. Testauslauseke palauttaa arvon EvaluationResult.NOT_LOADED, jos varsinaisen testauksen toteuttavaa ominaisuuksien testausta ei ole vielä ladattu.



<!ELEMENT systemTest EMPTY>

<!ATTLIST systemTest

property CDATA #REQUIRED

value    CDATA #REQUIRED>

Testaa järjestelmän ominaisuutta kutsumalla metodia System.getProperty ja vertaa tulosta arvoon, joka on määritetty arvomääritteen avulla.



<!ELEMENT equals EMPTY>

<!ATTLIST equals

value CDATA #REQUIRED>

Tätä elementtiä käytetään toteuttamaan kohteena olevan objektin yhtäsuuruustarkistus. Lauseke palauttaa arvon EvaluationResult.TRUE, jos objektin arvo on yhtä suuri kuin määritteen arvon antama arvo. Muussa tapauksessa palautuu arvo EvaluationResult.FALSE.



<!ELEMENT count EMPTY>

<!ATTLIST count

value CDATA #REQUIRED>

Tämän elementin avulla testataan kokoelman elementtien määrä.



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

<!ATTLIST with

variable CDATA #REQUIRED>

Tämä elementti muuttaa tarkasteltavan objektin kaikkien sen aliobjektien osalta annetun muuttujan viittaamaksi objektiksi. Jos muuttujan selvitys ei onnistu, lauseke aiheuttaa poikkeuksen ExpressionException, kun sitä arvioidaan. WITH-lausekkeen aliobjektit yhdistetään AND-operaattorin avulla.



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

<!ATTLIST resolve

variable CDATA #REQUIRED

args     CDATA #IMPLIED>

Tämä elementti muuttaa tarkasteltavan objektin kaikkien sen aliobjektien osalta annetun muuttujan viittaamaksi objektiksi. Jos muuttujan selvitys ei onnistu, lauseke aiheuttaa poikkeuksen ExpressionException, kun sitä arvioidaan. WITH-lausekkeen aliobjektit yhdistetään AND-operaattorin avulla.



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

<!ATTLIST adapt

type CDATA #REQUIRED>

Tämän elementin avulla mukautetaan kohteena oleva objekti määritelajin määrittämään lajiin. Lauseke palauttaa arvon "ei ladattu", jos sovitinta tai viitattua lajia ei ole vielä ladattu. Se aiheuttaa poikkeuksen ExpressionException arvioinnin aikana, jos lajin nimeä ei ole lainkaan. Mukautuslausekkeen aliobjektit yhdistetään AND-operaattorin avulla.



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

<!ATTLIST iterate

operator (or|and) >

Tämän elementin avulla iteroidaan muuttuja, joka on lajia java.util.Collection. Jos kohteena oleva objekti ei ole lajia java.util.Collection, ilmenee poikkeus ExpressionException arvioitaessa lauseketta.



Seuraavassa on esimerkki uuden hahmonnuslajin ja sidonnan määrityksestä.

<extension point=

"org.eclipse.debug.ui.memoryRenderings"

>

<renderingType name=

"Mallihahmonnus"

id=

"com.example.sampleRendering"

class=

"com.example.SampleRenderingTypeDelegate"

>

</renderingType>

<renderingBindings renderingIds=

"com.example.sampleRendering"

>

<enablement>

<instanceof value=

"com.example.SampleMemoryBlock"

/>

</enablement>

</renderingBindings>

</extension>

Edellisessä esimerkissä määritetään uusi hahmonnuslaji nimeltä Mallihahmonnus. Tämän lajin uudet hahmonnukset luodaan käyttämällä com.example.SampleRenderingTypeDelegate-luokkaa, joka toteuttaa org.eclipse.debug.ui.memory.IMemoryRenderingTypeDelegate-liittymän. Hahmonnus sidotaan com.exmaple.SampleMemoryBlock-ilmentymiin.

  • RenderingType-elementin class-määritteen arvon on oltava sen Java-luokan tarkka nimi, joka toteuttaa org.eclipse.debug.ui.memory.IMemoryRenderingTypeDelegate-liittymän.
  • RenderingBindings-elementin class-määritteen arvon on oltava sen Java-luokan tarkka nimi, joka toteuttaa org.eclipse.debug.ui.memory.IMemoryRenderingBindingsProvider-liittymän.
  • Vianmääritysympäristössä on seuraavat hahmonnuslajit:

  • heksahahmonnus (hahmonnustunnus org.eclipse.debug.ui.rendering.raw_memory)
  • ASCII-hahmonnus (hahmonnustunnus org.eclipse.debug.ui.rendering.ascii)
  • allekirjoitettujen kokonaislukujen hahmonnus (hahmonnustunnus org.eclipse.debug.ui.rendering.signedint)
  • allekirjoittamattomien kokonaislukujen hahmonnus (hahmonnustunnus org.eclipse.debug.ui.rendering.unsignedint).

  • Vianmääritysympäristössä on muistinäkymä hahmonnuksia varten.