import java.util.Date; public aspect aspekt { declare parents: service.* implements LastTimes; private Date LastTimes.lastCallTime= new Date(); private Date LastTimes.lastReturnTime = new Date(); public Date LastTimes.getLastCallTime() { return lastCallTime; } public Date LastTimes.lastReturnTime() { return lastReturnTime; } // public void LastTimes.ustawCall(Date data){ // // } // public void LastTimes.ustawReturn(Date data){ // // } before(LastTimes czasy) : call(* LastTimes+.*(..)) && !call(* LastTimes.*(..)) && this(czasy) { czasy.lastCallTime= new Date(); // czasy.ustawCall(new Date()); } after(LastTimes czasy2) : call(* LastTimes+.*(..)) && !call(* LastTimes.*(..)) && this(czasy2) { czasy2.lastReturnTime = new Date(); //czasy2.ustawReturn(new Date()); } interface LastTimes { void ustawCall(Date data); void ustawReturn(Date data); } }