Można użyć w ciągu lub withincode punktów przekroju dopasować zawierającego klasę, a Cflow punktu przekroju dopasować wykonanie metody addActionListener(), a następnie połączyć to z wykonać pointcut, aby dopasować treść metody actionPerformed().
Przykładowo ten punkt przekroju pasuje realizacji sposobu actionPerformed tylko w wewnętrznym klasy InnerTest testowego klasy (przy założeniu, że pakiet jest test
) i tylko w strumieniu realizacji sposobu addActionListener:
pointcut innerTest(): within(test.Test.InnerTest) &&
cflow(execution(public void javax.swing.JButton.addActionListener(java.awt.event.ActionListener))) &&
execution(void actionPerformed(ActionEvent));
Jeśli interesuje Cię tylko dopasowywanie wywołań do actionPerformed() wewnątrz klasy wewnętrznej, możesz pominąć klauzulę przepływu.
Warto zauważyć, że jeśli wszystko jesteś zainteresowany jest dopasowanie wykonanie dowolnej metody actionPerformed(), byłoby to wystarczyć:
pointcut innerTest():
execution(void java.awt.event.ActionListener+.actionPerformed(ActionEvent));