[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-users] Change propagation, AspectJ More options


I don't know much about AspectJ, but I'm wondering about something in
Java like this one at http://common-lisp.net/project/computed-class.

Is it possible to write some AspectJ code (and add some pointcuts, etc.) to transform:

public Integer a;


private ComputedState<Integer> aState = new ComputedState<Integer>();

public Integer getA() { return aState.getValue(); }

public void setA(int a) { aState.setValue(a); }

and transform:

public Integer getB() { return getA() + 1; }


private ComputedState<Integer> bState;

public int getB() { return bState.recomputeIfInvalidAs(new IComputation() { public Object compute() { return getA() + 1; } }); }

The rest is simple and could be done in Java too and may eliminate lots of listeners...


-- There's no perfectoin