Rendering della memoria

org.eclipse.debug.ui.memoryRenderings

3.1 - sostituzione del punto di estensione memoryRenderingTypes considerato sperimentale in 3.0

Consente ai plugin di fornire rendering arbitrari per i blocchi di memoria e di collegare blocchi di memoria per il rendering. Ad esempio, un rendering può convertire byte non elaborati di un blocco di memoria in caratteri ASCII.

<!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>

Questo elemento definisce un tipo di rendering.



<!ELEMENT renderingBindings (enablement*)>

<!ATTLIST renderingBindings

renderingIds CDATA #IMPLIED

primaryId    CDATA #IMPLIED

class        CDATA #IMPLIED

defaultIds   CDATA #IMPLIED>

Collega i blocchi di memoria con i rendering disponibili.



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

Un elemento principale generico. L'elemento può essere utilizzato in un punto di estensione per definire la relativa espressione di attivazione. Gli elementi secondari di un'espressione di attivazione vengono associati utilizzando l'operatore and.



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

Questo elemento rappresenta un'operazione NOT sul risultato della valutazione della relativa espressione dell'elemento secondario.



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

Questo elemento rappresenta un'operazione AND sul risultato della valutazione di tutte le espressioni dei relativi elementi secondari.



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

Questo elemento rappresenta un'operazione OR sul risultato della valutazione di tutte le espressioni dei relativi elementi secondari.



<!ELEMENT instanceof EMPTY>

<!ATTLIST instanceof

value CDATA #REQUIRED>

Questo elemento viene utilizzato per eseguire un controllo instanceof dell'oggetto attivo. L'espressione restituisce EvaluationResult.TRUE se il tipo dell'oggetto è un tipo secondario del tipo specificato dal valore dell'attributo. In caso contrario, viene restituito EvaluationResult.FALSE.



<!ELEMENT test EMPTY>

<!ATTLIST test

property CDATA #REQUIRED

args     CDATA #IMPLIED

value    CDATA #IMPLIED>

Questo elemento viene utilizzato per valutare lo stato della proprietà dell'oggetto in questione. L'insieme di proprietà verificabili può essere esteso utilizzando il punto di estensione del tester delle proprietà. L'espressione di verifica restituisce EvaluationResult.NOT_LOADED se il tester delle proprietà non è ancora stato caricato.



<!ELEMENT systemTest EMPTY>

<!ATTLIST systemTest

property CDATA #REQUIRED

value    CDATA #REQUIRED>

Verifica una proprietà di sistema richiamando il metodo System.getProperty e confronta il risultato con il valore specificato dall'attributo del valore.



<!ELEMENT equals EMPTY>

<!ATTLIST equals

value CDATA #REQUIRED>

Questo elemento viene utilizzato per eseguire un controllo di eguaglianza dell'oggetto attivo. L'espressione restituisce EvaluationResult.TRUE se l'oggetto è uguale al valore fornito dal valore dell'attributo. In caso contrario, viene restituito EvaluationResult.FALSE.



<!ELEMENT count EMPTY>

<!ATTLIST count

value CDATA #REQUIRED>

Questo elemento viene utilizzato per verificare il numero di elementi in una raccolta.



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

<!ATTLIST with

variable CDATA #REQUIRED>

Questo elemento modifica l'oggetto da esaminare per tutti i relativi elementi secondari indicati da una determinata variabile. Se non è possibile risolvere la variabile, l'espressione genera un ExpressionException durante la valutazione. Gli elementi secondari di una espressione WITH sono combinati con l'operatore AND.



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

<!ATTLIST resolve

variable CDATA #REQUIRED

args     CDATA #IMPLIED>

Questo elemento modifica l'oggetto da esaminare per tutti i relativi elementi secondari indicati da una determinata variabile. Se non è possibile risolvere la variabile, l'espressione genera un ExpressionException durante la valutazione. Gli elementi secondari di una espressione WITH sono combinati con l'operatore AND.



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

<!ATTLIST adapt

type CDATA #REQUIRED>

Questo elemento viene utilizzato per adattare l'oggetto attivo al tipo specificato dal tipo di attributo. L'espressione restituisce non caricato se l'adattatore o il tipo indicato non è stato ancora caricato. Viene generata una ExpressionException durante la valutazione se il nome del tipo non esiste. Gli elementi secondari di una espressione di adattamento sono combinati con l'operatore AND.



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

<!ATTLIST iterate

operator (or|and) >

Questo elemento viene utilizzato per iterare una variabile di tipo java.util.Collection. Se l'oggetto attivo non è del tipo java.util.Collection viene generata una ExpressionException durante la valutazione dell'espressione.



Di seguito è riportato un esempio per la definizione di un nuovo tipo e binding di rendering:

<extension point=

"org.eclipse.debug.ui.memoryRenderings"

>

<renderingType name=

"Rendering di esempio"

id=

"com.example.sampleRendering"

class=

"com.example.SampleRenderingTypeDelegate"

>

</renderingType>

<renderingBindings renderingIds=

"com.example.sampleRendering"

>

<enablement>

<instanceof value=

"com.example.SampleMemoryBlock"

/>

</enablement>

</renderingBindings>

</extension>

Nell'esempio precedente viene definito un nuovo tipo di rendering, Rendering di esempio. La classe com.example.SampleRenderingTypeDelegate implementa org.eclipse.debug.ui.memory.IMemoryRenderingTypeDelegate e verrà utilizzata per creare nuovi rendering di questo tipo. Il rendering viene collegato ad istanze di com.exmaple.SampleMemoryBlock.

  • Il valore dell'attributo class in un elemento renderingType deve essere un nome completo di una classe Java che implementa org.eclipse.debug.ui.memory.IMemoryRenderingTypeDelegate.
  • Il valore dell'attributo class in un elemento renderingBindings deve essere un nome completo di una classe Java che implementa org.eclipse.debug.ui.memory.IMemoryRenderingBindingsProvider.
  • La piattaforma di debug fornisce i seguenti tipi di rendering:

  • Rendering esadecimale (id rendering: org.eclipse.debug.ui.rendering.raw_memory)
  • Rendering ASCII (id rendering: org.eclipse.debug.ui.rendering.ascii)
  • Rendering intero con segno (id rendering: org.eclipse.debug.ui.rendering.signedint)
  • Rendering intero senza segno (id rendering: org.eclipse.debug.ui.rendering.unsignedint)

  • La piattaforma di debug fornisce una vista memoria per contenere i rendering.