List cflowExpressionList = new ArrayList();
Pointcut cflowPointcut = null;
ExpressionContext ctx = new ExpressionContext(type, reflectInfo, withinInfo);
AspectManager[] aspectManagers = system.getAspectManagers();
for (int i = 0; i < aspectManagers.length; i++) {
AspectManager aspectManager = aspectManagers[i];
/// grab the first one found, one single cflow pointcut is enough per join point
if (cflowPointcut == null) {
List cflowPointcuts = aspectManager.getCflowPointcuts(ctx);
if (!cflowPointcuts.isEmpty()) {
cflowPointcut = (Pointcut) cflowPointcuts.get(0);
}
}
// get all matching pointcuts from all managers
for (Iterator it = aspectManager.getPointcuts(ctx).iterator(); it.hasNext();) {
Pointcut pointcut = (Pointcut) it.next();
AdviceInfo[] aroundAdviceIndexes = pointcut.getAroundAdviceIndexes();
AdviceInfo[] beforeAdviceIndexes = pointcut.getBeforeAdviceIndexes();
AdviceInfo[] afterAdviceIndexes = pointcut.getAfterAdviceIndexes();