In the body of advice two join point identifiers are bound

  'thisJoinPoint' 
     is bound to a complete join point object, one of the 11 concrete kinds
     defined below

  'thisStaticJoinPoint' 
     is a performance optimization.  It is bound to a partially complete join
     point object object that includes less information, but for which no memory
     allocation is required on each execution of the advice.  For now, this
     document doesn't talk much about when to use that object vs. just
     thisJoinPoint.


In correspondence with the language, there are eleven concrete types of join
points:

   {field}x{get,set}
   {initializer, advice}x{execution}
   {constructor, method}x{calls, receptions, executions}
   handler

 (Initializer and advice execution join points aren't explicit in the language
 now, but this change will add them.)


There are 6 kinds of signature:

   field, initializer, advice, constructor, method, catch clause

There are source location objects.

There are 2 exception types
    
   StaticJoinPointException
     methods on JoinPoint that have a * in the left margin can throw this

   java.lang.UnsupportedOperationException
     getEnclosingExecutionJoinPoint and getCorrespondingSourceLocation
     throw this when they are called on a reception join point