Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [aspectj-users] Pointcut for package protected methods

Title: Pointcut for package protected methods

Here’s a sample program with a working form of the pointcut to pick out only default access (package friendly) methods:

 

public aspect TestDefaultDetection {

    pointcut defaultMethod() : execution(!private !public !protected * *(..));

    declare warning: defaultMethod(): “default method”;

    void testMatch() {}

    public void testNoMatch() {}

}

 

class Baz {

    public void alsoNoMatch() {}

}

 

C:\devel\scratch\access>ajc TestDefaultDetection.aj

C:\devel\scratch\access\TestDefaultDetection.aj:4 [warning] default method

void testMatch() {}

^^^^^^^^^^^^^^^^^^^

        method-execution(void TestDefaultDetection.testMatch())

        see also: C:\devel\scratch\access\TestDefaultDetection.aj:3::0

 

1 warning


From: aspectj-users-bounces@xxxxxxxxxxx [mailto:aspectj-users-bounces@xxxxxxxxxxx] On Behalf Of David Hatton (AT/LMI)
Sent: Tuesday, September 26, 2006 11:23 AM
To: aspectj-users@xxxxxxxxxxx
Subject: RE: [aspectj-users] Pointcut for package protected methods

 

Actually, this doesn't work ... I originally thought it did, but got a syntax error when I tried it.

 

I've reverted to my original solution unless anyone else has a better mechanism????

 


From: aspectj-users-bounces@xxxxxxxxxxx [mailto:aspectj-users-bounces@xxxxxxxxxxx] On Behalf Of David Hatton (AT/LMI)
Sent: 21 September 2006 15:50
To: aspectj-users@xxxxxxxxxxx
Subject: RE: [aspectj-users] Pointcut for package protected methods

Yes, I thought I had tried that and got an error, but it definitely works.

 

thanks for that!!

 

 

 


From: aspectj-users-bounces@xxxxxxxxxxx [mailto:aspectj-users-bounces@xxxxxxxxxxx] On Behalf Of Eric Bodden
Sent: 21 September 2006 15:47
To: aspectj-users@xxxxxxxxxxx
Subject: RE: [aspectj-users] Pointcut for package protected methods

You can do things like this, I believe:

 

execution((!private && !final && !public) * com.ericsson.nms.cif.cs.transaction.*.*(..))

 

 

Eric

 

From: aspectj-users-bounces@xxxxxxxxxxx [mailto:aspectj-users-bounces@xxxxxxxxxxx] On Behalf Of David Hatton (AT/LMI)
Sent: Thursday, September 21, 2006 10:34 AM
To: aspectj-users@xxxxxxxxxxx
Subject: [aspectj-users] Pointcut for package protected methods

 

Hi,

I am trying to define a point but for methods in a particular package which are either protected or package protected (default access).

I can't come up with anything better than this:

    pointcut protectedTxMethods() :
        execution(* com.ericsson.nms.cif.cs.transaction.*.*(..)) &&
        execution(!final * com.ericsson.nms.cif.cs.transaction.*.*(..)) &&
        execution(!private * com.ericsson.nms.cif.cs.transaction.*.*(..));

Is there a better way, or is this the only way to do it???

/David

 


Back to the top