Dobry den,
Toto je zaujimavy problem. Dostat k argumentom sa mozete cez
'thisJointPoint.getArgs()' nato vsak pointcut nemoze byt zadefinovany na
Logger.logError ale na jeho enclosing contexte. Je jasne ze pointcut na
enclosing context mozno zadefinovat len tak ze sa v nom nachadza
Logger.logError, pretoze tazko vymyslet nejake vseobenejsie pravidlo. Tu
by mohli pomoct lexikalne pointcuty within(), withincode(), ak vobec :)
Martin Krajci
Horvath, Bystrik wrote:
Dobry den,
Potreboval by som pomoct s nasledovnym problemom. Mam nasledovne 2
triedy:
public class Logger {
public void logError(String msg) {
//do something
}
}
public class Runner {
public void run(String msg,Date date) {
new Logger().logError("Error occured");
}
}
Potreboval by som v metodach, v ktorych kde sa vola metoda
Logger.logError() zalogovat parametre metody - v tomto pripade String a
Date metody Runner.run(), v kontexte ktorej sa metoda logError() volala.
Pripadalo mi vhodne skusit pouzit na tento problem AspectJ. Kod, ktory
som poskytol je principalny, nieco take existuje na nasom projekte, kde
pocet metod, ktore volaju Logger.logError() je radovo tisicky :-(
Skusal som to cez pointcut call(* Logger.logError(..)) a v advice som sa
vedel dostat k thisEnclosingJoinCutStaticPart, ale ten pozna iba
signaturu metody Runner.run(), ale nie hodnoty parametrov ( lebo je
static;-))
Da sa to vobec takto spravit cez AspectJ?
Dakujem za kazdu odpoved,
Bystro Horvath
______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________
______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________