Commit 1ae1f2f0 by Patryk Czarnik

Utworzenie klasy LogikaKalkulatora

parent b75afa1a
package alx.aplikacja; package alx.aplikacja;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@Controller @Controller
public class KalkulatorController { public class KalkulatorController {
@Autowired
private LogikaKalkulatora logikaKalkulatora;
@GetMapping("/kalkulator") @GetMapping("/kalkulator")
public String dzialaj(Long liczba1, Long liczba2, String operacja, Model model) { public String dzialaj(Long liczba1, Long liczba2, String operacja, Model model) {
if(ObjectUtils.allNotNull(liczba1, liczba2, operacja)) { if(ObjectUtils.allNotNull(liczba1, liczba2, operacja)) {
long wynik = switch (operacja) { long wynik = logikaKalkulatora.oblicz(liczba1, liczba2, operacja);
case "+" -> liczba1 + liczba2;
case "-" -> liczba1 - liczba2;
case "*" -> liczba1 * liczba2;
case "/" -> liczba1 / liczba2;
default -> 0;
};
model.addAttribute("wynik", wynik); model.addAttribute("wynik", wynik);
} }
return "kalkulator.html"; return "kalkulator.html";
......
package alx.aplikacja;
import org.springframework.stereotype.Component;
/* Adnotacja @Component (albo alternatywnie @Service, @Repository) powoduje, że:
1. na starcie aplikacji Spring twozy obiekt tej klasy i go "rejestruje" jako komponent / bean
2. gdy inne klasy będą się odpowiednio odwoływać do tej klasy, to Spring "wstrzyknie" referencję do tego obiektu
*/
@Component
public class LogikaKalkulatora {
public long oblicz(long liczba1, long liczba2, String operacja) {
return switch (operacja) {
case "+" -> liczba1 + liczba2;
case "-" -> liczba1 - liczba2;
case "*" -> liczba1 * liczba2;
case "/" -> liczba1 / liczba2;
default -> 0;
};
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment