Peter
As I
understand it, declare is a compile time error or warning; this(), target() and
args() are all run time checks. Except in the simplest of cases, it is not
possible to tell at compile time what the type of this, target or args will
be.
Elizabeth
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]On Behalf Of Peter Murray
Sent: September 14, 2006 1:12 PM
To: [email protected]
Subject: [aspectj-users] Question re: declare error
I'd like to declare an error if my @Transactional attributed instance variables are being set outside of the context of a Change object. In other words, I'd like to have an error in this case:
public class Foo
{
@Transactional
String name
public void setName(String newName)
{
name = newName;
}
}
But not in this case:
public class Foo
{
@Transactional
String name
public void setName(String newName)
{
new ValueChange<String>(name, newName)
{
public void set(String value)
{
name = value;
}
}.post();
}
}
It seems like this kind of aspect should do that:
public aspect FieldChangeAspect
{
declare error :
set(@Transactional * *) &&
!this(Change) : "Set of @Transactional variable not in Change object";
}
But this gives me an error saying "this() pointcut designator cannot be used in declare statements." BTW, target(), and args() also give the same error for declare statements i guess, so you can't filter on types of this, target, or args in declares.
Am I missing something? Is there a reason for this or could these be enhancements?
Cheers,
--
-pete
peter m. murray
[EMAIL PROTECTED]
CONFIDENTIAL AND PRIVILEGED INFORMATION NOTICE This e-mail, and any attachments, may contain information that is confidential, subject to copyright, or exempt from disclosure. Any unauthorized review, disclosure, retransmission, dissemination or other use of or reliance on this information may be unlawful and is strictly prohibited. AVIS D'INFORMATION CONFIDENTIELLE ET PRIVILÉGIÉE Le présent courriel, et toute pièce jointe, peut contenir de l'information qui est confidentielle, régie par les droits d'auteur, ou interdite de divulgation. Tout examen, divulgation, retransmission, diffusion ou autres utilisations non autorisées de l'information ou dépendance non autorisée envers celle-ci peut être illégale et est strictement interdite. |
_______________________________________________ aspectj-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/aspectj-users
