Abstract Structure Model (ASM)
Aspect Member Labels
- pointcut
- advice
- after(Types)
- after(Types) returning [(Formal)]
- after(Types) throwing [(Formal)]
- around(Types) : Type
- [throws Type]
- before
- inter-type member declarations
- Id(Types) : Type
- Id : Type
- other inter-type declarations
- declare parents : Type ???
- declare warning : "<first words of String>.."
- declare error : "<first world of String>.."
- declare soft : Type
- declare precedence
Advice Relationships
- advises / advised by
- call
- method/constructor call site
- execution
- method/constructor declaration
- initialization
- type declaration otherwise
- preinitiatialization
- staticinitialization
- type declaration otherwise
- get
- set
- handler
- adviceexecution
- uses control flow / control flow used by
- cflow
- method declaration / call site
- cflowbelow
- uses dynamic test / dynamic test used by
Additional Inheritance Relationships
- inherits / inherited by
- aspect declaration
- abstract aspect declaration
- specifies / specified by
Additional Referential Relationships
- matches deffered
- uses pointcut / pointcut used by
- advice declaration
- pointcut
- is specified per / pointcut used by
Inter-Type Declarations
- declares on / introduced declarations
- inter-type declaration -- do these show up ???
- soft declaration
- declares static check / matched by static check
- error/warning declare declaration
- declares precedence on
Issues
- default constructors & initializers: promote to relation to type
declaration, or just move source location to type declaration, but show
nodes in tree ??