On Apr 17, 2008, at 11:59 AM, Simone Gianni wrote:
Hi neil,
maybe I'm wrong, but if you are intercepting a constructor, can't you
simply call proceed() to obtain the correct instance ?
public aspect X<T> {
pointcut myPct() : call(public T.new());
T around() : myPct() {
T ret = (T)proceed();
if(someTest) {
// do
something with ret
}
return
ret;
}
}
I can't remember exactly, but I think I already used an around advice on
a costructor to intercept object creation, an I suppose this can work
also on generics as long as rest of the aspect is supported.
Hope this helps,
Simone
neil loughran wrote:
Hi,
I have an issue where I am seeing the same kind of code in several of
my
aspects. For example in the following SomeClass appears at
several points
which makes me think generics would be a solution.
public aspect X {
pointcut myPct() : call(public SomeClass.new());
SomeClass around() : myPct() {
if(someTest) {
SomeClass
s = new SomeClass();
// do
something with s
return
s;
}
else proceed();
}
}
Generic version.
abstract aspect X<T> {
pointcut myPct() : call(public T.new());
T around() : myPct() {
if(someTest) {
T s =
new T(); // error
// do
something with s
return
s;
}
else proceed();
}
}
Unfortunately, it is not possible to instantiate a generic type from
within
the aspect. Just wondering if there was a way around this?
Regards
Neil
_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users
_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users