Pointcut
There are millions of moments where the teacher could step in. You care about a handful.
A pointcut is the filter that picks them out: "every call to a method that opens a file". It says where. It does not say what to do once you are there.
What it is
A pointcut is a predicate over join points. It selects them by signature, by type, by annotation, or by combinations of those.
A pointcut is only as good as its coverage, and this is the central weakness of the call-site approach: the pointcut is effectively an enumerated list of call sites the weaver could find and rewrite. An operation reachable by a route the pointcut does not name is not intercepted at all.
In Ares the pointcut definitions live alongside the advice under
api/aop, and the instrumentation backend uses matchers over types and
methods for the same purpose.
Further reading
- AspectJ Documentation and Resources — Eclipse Foundation
- Intro to AspectJ — Baeldung
- Understanding Aspect-Oriented Programming: Java and AspectJ — Aayush Shrivastav, Medium (freely readable)