1234567891011121314151617181920212223242526272829303132333435363738394041 |
- class CommonEntity {
-
- public void add(CommonEntity ce) {}
- public void remove(CommonEntity ce) {}
-
- }
-
- class ManageEntity {
-
- ManageEntity(CommonEntity ce) {
- }
- }
-
-
- abstract aspect Y {
- abstract pointcut entityAccessor(CommonEntity entity);
- before(CommonEntity entity): entityAccessor(entity) {}
- }
-
-
- aspect X extends Y {
-
- public pointcut entityAccessor1(CommonEntity entity)
- : (execution(* CommonEntity+.add*(CommonEntity+))
- || (execution(* CommonEntity+.remove*(CommonEntity+))))
- && within(CommonEntity+)
- && args(entity) && if(entity != null);
-
- public pointcut entityAccessor2(CommonEntity entity)
- : execution(ManageEntity.new(CommonEntity+, ..))
- && within(ManageEntity)
- && args(entity, ..)
- && if(entity != null);
-
- public pointcut entityAccessor(CommonEntity entity)
- : entityAccessor1(entity) || entityAccessor2(entity);
-
-
- }
-
|