Hi Rob,
 
Try "within" to restrict your calls to within the particular class. I am
not 100% sure how this will work with an inner class, but try this :
 
pointcut callAction( ) : call(* jade.core.behaviours.Behaviour.action
()) 

&& 

within(apoptotic.bookTrading.BookSellerAgent.CallForOfferServer); 
 
HTH,
 
Fintan 

        -----Original Message-----
        From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Rob Austin
        Sent: 06 November 2007 09:39
        To: [email protected]
        Subject: Re: [aspectj-users] Removing functionality with
AspectJ?
        
        
        Thanks very much. 
         
        Actually, my description of my problem was a bit on the rubbish
side. What I should have said is that CallForOfferServer  overrides the
action() method in jade.core.behaviours.Behaviour, and that I do want to
advise "when method action() is called from within 
        CallForOfferServer"
         
        So sorry about that. Anyway, it seems that this works:
         
        

        pointcut callAction( ) : call(*
jade.core.behaviours.Behaviour.action ()) 

        && 

        
target(apoptotic.bookTrading.BookSellerAgent$CallForOfferServer); 

        Thanks very much for your help

        Rob

         

         

         


         

         



        On 06/11/2007, Bora Erbas <[EMAIL PROTECTED]> wrote: 

                I assume when you say "when it is called from the class
                CallForOfferServer", you mean
                "when object A uses an object of type CallForOfferServer
to call 
                action() method", right?
                I mean you don't mean "when method action() is called
from within
                CallForOfferServer"?
                
                Anyway, if my assumption is correct then what I would do
is:
                pointcut callAction() : call(*
jade.core.behaviours.Behaviour.action ());
                
                And in the advice use
thisJoinPoint.getTarget().getClass() or
                instanceof to check against CallForOfferServer.
                I am not sure if it would work but anyway give it a
try.. 
                
                
                
                On Nov 6, 2007 10:35 AM, Rob Austin
<[EMAIL PROTECTED]> wrote:
                > Thanks very much Fintan, I'm close to getting it
working, but no cigar.
                >
                > I think this is because the method I am targetting is
inherited.
                >
                > I have a class called CallForOfferServer which
inherits the method  action()
                > from a class called Behaviour as follows:
                >
                > Behaviour
                > ^
                > SimpleBehaviour
                > ^
                > LifeCycle
                > ^
                > CallForOfferServer
                >
                > I am trying to advise the action() method only when it
is called from the
                > class CallForOfferServer, but just can't nail it. 
                >
                > Any help would be great. This is my failing code:
                >
                >
                > pointcut callAction() : call(*
jade.core.behaviours.Behaviour.action ()) &&
                >
target(apoptotic.bookTrading.BookSellerAgent.CallForOfferServer );
                >
                >
                >
                >
                >
                >
                >
                > void around( ): callAction()
                >
                > {
                >
                >
                >
                >  \\ do something
                >
                > }
                > Really appreciate your help
                > 
                > Thanks
                >
                > Rob
                >
                >
                >
                >
                >
                > On 05/11/2007, Fintan Conway <[EMAIL PROTECTED]>
wrote:
                > >
                > >
                > > Hi Rob, 
                > >
                > > Instead of a "before" advice, use an "around"
advice.  With an around
                > advice you need to call the method proceed() to run
the original method.
                > Thus in your advice if the security test allows the
method to proceed you 
                > call the proceed() keyword, otherwise skip.
                > >
                > > Regards,
                > >
                > > Fintan
                > >
                > >
                > >
                > > -----Original Message-----
                > > From: [EMAIL PROTECTED]
                > [mailto:[EMAIL PROTECTED] On Behalf
Of Rob Austin
                > > Sent: 05 November 2007 11:44
                > > To: [email protected]
                > > Subject: [aspectj-users] Removing functionality with
AspectJ?
                > >
                > >
                > > Hi there,
                > >
                > > I'm completely new to AspectJ and was wondering if
there is anyway to 
                > cause a method to be "skipped" with AspectJ.
                > >
                > > Apologies if the question sounds silly, but I am
using AspectJ to monitor
                > what is going on in an object for security purposes. 
                > >
                > > If certain conditions have been met, a rule engine
implemented in a before
                > advice determines that the code in that method should
be skipped. Naturally,
                > for this to be in anyway feasible, the method in
question would need not to 
                > return anything, something like
                > >
                > > publicvoid action()
                > >
                > > I guess I need something like a  decorator pattern
that removes
                > functionality rather than adds it. The only way I can
currently think do to 
                > this is to use my aspect to change the value of a
boolean variable in the
                > target method which causes the code to exit without
doing anything.
                > >
                > > Really appreciate your help
                > > 
                > > Thanks
                > >
                > > Rob
                > >
                > >
                > >
                > >  * ** *** ** * ** *** ** * ** *** ** *
                > > This email and any files transmitted with it are
confidential and
                > > intended solely for the use of the individual or
entity to whom they
                > > are addressed.
                > > Any views or opinions presented are solely those of
the author, and do not
                > necessarily
                > > represent those of ESB. 
                > > If you have received this email in error please
notify the sender.
                > >
                > > Although ESB scans e-mail and attachments for
viruses, it does not
                > guarantee
                > > that either are virus-free and accepts no liability
for any damage 
                > sustained
                > > as a result of viruses.
                > >
                > > Company Registration Information:
http://www.esb.ie/companies
                > > * ** *** ** * ** *** ** * ** *** ** * 
                > >
                > >
                > >
                > > _______________________________________________
                > > aspectj-users mailing list
                > > [email protected] 
                > >
https://dev.eclipse.org/mailman/listinfo/aspectj-users
                > >
                > >
                >
                >
                > _______________________________________________ 
                > aspectj-users mailing list
                > [email protected]
                > https://dev.eclipse.org/mailman/listinfo/aspectj-users

                >
                >
                _______________________________________________
                aspectj-users mailing list
                [email protected]
                https://dev.eclipse.org/mailman/listinfo/aspectj-users
                



* ** *** ** * ** *** ** * ** *** ** *
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed.
Any views or opinions presented are solely those of the author, and do not 
necessarily
represent those of ESB.
If you have received this email in error please notify the sender.

Although ESB scans e-mail and attachments for viruses, it does not guarantee
that either are virus-free and accepts no liability for any damage sustained
as a result of viruses.

Company Registration Information: http://www.esb.ie/companies
* ** *** ** * ** *** ** * ** *** ** *

_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to