import EDU.oswego.cs.dl.util.concurrent.*; public abstract aspect SimpleSynchronizationAspect { public abstract pointcut readOperations(); public abstract pointcut writeOperations(); Object around(Object object) : (readOperations() || writeOperations()) && this(object) { synchronized (object) { return proceed(object); } } }