[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] nested calls

On Tuesday 18 December 2007 Ramnivas Laddad's cat, walking on the keyboard, 
> pointcut extendedOp() : execution(* StatefullDatabaseObject+.*(..)) &&
> !execution(StatefullDatabaseObject.*(..));

Following your suggestions (it works!) I've changed my pointcut to the 

pointcut nestedDatabaseOperation() : this(StatefullDatabaseObject)		
               // I want the call to be made within a StatefullDatabaseObject
    					 &&					// and
               // the callee must be another StatefullDatabaseObject
    					 &&					// and 
    					 execution( boolean StatefullDatabaseObject+.*() throws 
              // a method call to the main StatefullDatabaseObject methods
    					 &&					// and
    					 ! execution( boolean StatefullDatabaseObject.*() throws 
DatabaseException )	
             // I'm not myself in a StatefullObject method

But this rises a doubt in my mind: what's the exact difference between the 
execution and call clauses? In other words, why if I use call instead of the 
two execution forms it does not work (advicing also nested calls)?