Join Point Modifiers

Every join point has a single set of modifiers - these include the standard Java modifiers such as public, private, static, abstract etc., any annotations, and the throws clauses of methods and constructors. These modifiers are the modifiers of the subject of the join point.

The following table defines the join point subject for each kind of join point.

Join Point KindSubject
Method callThe method picked out by Java as the static target of the method call.
Method executionThe method that is executing.
Constructor callThe constructor being called.
Constructor executionThe constructor executing.
Field getThe field being accessed.
Field setThe field being set.
Pre-initializationThe first constructor executing in this constructor chain.
InitializationThe first constructor executing in this constructor chain.
Static initializationThe type being initialized.
HandlerThe declared type of the exception being handled.
Advice executionThe advice being executed.

For example, given the following types

        public class X {        
          @Foo
          protected void doIt() {...} 
        }
        
        public class Y extends X {        
          public void doIt() {...}        
        }
		

Then the modifiers for a call to (Y y) y.doIt() are simply {public}. The modifiers for a call to (X x) x.doIt() are {@Foo,protected}.