Facebook
  1. Rozwiązania z zadanek
  2.  
  3. Rozwiązanie Czocherka <3<3:
  4. package pak1;
  5.  
  6. public aspect Aspekt {
  7.        
  8.         declare parents : pak1..* implements EnableDisable;
  9.        
  10.         pointcut getReturningDouble(EnableDisable enableDisable, double liczba) : execution(* pak1..*.*(double)) && args(liczba) && this(enableDisable);
  11.        
  12.         private boolean EnableDisable.enableCheck = false;
  13.        
  14.         public void EnableDisable.enableCheck() {
  15.                 this.enableCheck = true;
  16.         }
  17.        
  18.         public void EnableDisable.disableCheck() {
  19.                 this.enableCheck = false;
  20.         }
  21.        
  22.         before(EnableDisable enableDisable, double liczba) : getReturningDouble(enableDisable, liczba) {
  23.                 if(liczba < 0 && enableDisable.enableCheck) {
  24.                         throw new IllegalArgumentException("Nie moze byc ujemna!");
  25.                 }
  26.         }
  27. }
  28.  
  29. interface EnableDisable {
  30.        
  31. }
  32.