Estou eu implementando suporte a interceptor stacks e me deparei com um probleminha que não achei solução prática.
Os interceptors funcionam como decoradores, ou seja, eles fazem ‘wrapping’ nos objetos em questão.
Meu problema todo é como implementar isso sem usar DP.
Por exemplo:
interface X { void m0(); void m1(); }
interface Y { void m2(); void m3(); }
class Interceptor1 implements X {
X x;
Interceptor1(X x) { this.x = x; }
void m0() { x.m0(); }
void m1() { x.m1(); }
}
class Interceptor2 implements Y {
Y y;
Interceptor2(Y y) { this.y = y; }
void m2() { y.m2(); }
void m3() { y.m3(); }
}
class MyClass implements X, Y {
void m0() { System.out.println("MyClass"); }
void m1() { System.out.println("MyClass"); }
void m2() { System.out.println("MyClass"); }
void m3() { System.out.println("MyClass"); }
}
Qual meu problema? Quero poder aplicar os dois interceptadores em MyClass sem usar 1 tonelada de DP, só um pouco de instrumentação de código/bytecode.
