PointcutManager aspect = SystemLoader.getSystem(uuid).getAspectManager().
getPointcutManager(aspectDef.getName());
for (Iterator it2 = aspectDef.getAllAdvices().iterator(); it2.hasNext();) {
AdviceDefinition adviceDef = (AdviceDefinition)it2.next();
Expression expression = adviceDef.getExpression();
for (Iterator it3 = expression.getCflowExpressions().entrySet().iterator(); it3.hasNext();) {
Map.Entry entry = (Map.Entry)it3.next();
Expression value = (Expression)entry.getValue();
if (value instanceof ExpressionExpression) {
// recursive
// TODO ALEX exprexpr using exprexpr
// like pc cflow = "a or b"
// .. pc exec = "c IN cflow"
(new Exception("todo")).printStackTrace();
}
else {
// get the referenced cflow poincut definition
PointcutDefinition cflowPointcutDef = aspectDef.getPointcutDef(value.getName());
// if null, it is an anonymous cflow like in "execution(..) AND cflow(...)"
// create a new PoincutDef lately to bind it
// TODO check me - not needed since anonymous are autonamed ?
if (cflowPointcutDef == null) {
cflowPointcutDef = new PointcutDefinition();
cflowPointcutDef.setName(value.getName());
cflowPointcutDef.setType(PointcutType.CFLOW);
cflowPointcutDef.setExpression(value.getExpression());
}
// create call pointcut
Pointcut pointcut = new Pointcut(uuid, value);