diff --git a/foreksempel/src/main/java/of2/lf/Car.java b/foreksempel/src/main/java/of2/lf/Car.java index 0d6aba71c04f63e0b3aadecf7cba9c16fd01076d..450d33b34112fef19e60139384bfe0b50fe3bdcd 100644 --- a/foreksempel/src/main/java/of2/lf/Car.java +++ b/foreksempel/src/main/java/of2/lf/Car.java @@ -33,9 +33,9 @@ public class Car { } public static void main(String[] args) { - /* - * // Modell, Produsent, Registeringsnummer, Produksjonsår, Kilometerstand, Vekt - * Car car = new Car("S-MAX", "Ford", "AQ12345", 2019, 356.0); - */ + + // Modell, Produsent, Registeringsnummer, Produksjonsår, Kilometerstand, Vekt + Car car = new Car("S-MAX", "Ford", "AQ12345", 2019, 356.0); + System.out.println(car); } } diff --git a/foreksempel/src/main/java/of2/lf/SelfServiceCheckout.java b/foreksempel/src/main/java/of2/lf/SelfServiceCheckout.java index 9edbe9c244524558af6bfc8bee7a1286ef55ba67..76578ac523496a7116a337c0a057db8e0273252a 100644 --- a/foreksempel/src/main/java/of2/lf/SelfServiceCheckout.java +++ b/foreksempel/src/main/java/of2/lf/SelfServiceCheckout.java @@ -1,49 +1,43 @@ -package of2.lf; +package of2.kode; import java.util.Arrays; -import java.util.Collection; +import java.util.List; public class SelfServiceCheckout { - // Konstanter - del 1 - public static final Collection<String> days = Arrays.asList("mon", "tue", "wed", "thu", "fri", "sat", "sun"); + // Del 1 + public static final List<String> days = Arrays.asList("mon", "tue", "wed", "thu", "fri", "sat", "sun"); - // Felter / Tilstand private String day; private String phoneNumber; - // Konstruktør - del 3 + // Del 2 public SelfServiceCheckout(String day) { validateDay(day); this.day = day; } - // Registrer medlems-ID (telefonnummer) - public void registerPhoneNumber(String phoneNumer) { - if (this.phoneNumber != null) { - throw new IllegalStateException("Illegal operation"); - } - if (isValidPhoneNumber(phoneNumer)) { - this.phoneNumber = phoneNumer; - } else { - throw new IllegalArgumentException("Not a valid phone number, please re-enter."); + private void validateDay(String day) { + if (!days.contains(day)) { + throw new IllegalArgumentException("Invalid weekday"); } } - // Scanne varer - public void scanItem(String itemName, int amount, double price) { - double rebate = 0; - if (phoneNumber != null && day.equals("thu")) { - rebate = 0.1; + // Del 3 + public void registerPhoneNumber(String phoneNumber) { + if (this.phoneNumber != null) { + /* + * Her kaster vi IllegalStateException og ikke IllegalArgumentException + * fordi argumentet i seg selv (telefonnummeret) kan være gyldig, men + * det er ikke en gyldig tilstand å sette et nytt telefonnummer på nytt + * når brukeren allerede har registrert et fra før- + */ + throw new IllegalStateException("Illegal operation: Phone number already registered"); } - System.out.println(amount + "x " + itemName + ": " + (price - (price * rebate)) + " kr"); - } - - // Valideringsmetoder - del 2 - private void validateDay(String day) { - if (!days.contains(day)) { - throw new IllegalArgumentException("Invalid weekday"); + if (!isValidPhoneNumber(phoneNumber)) { + throw new IllegalArgumentException("Not a valid phone number!"); } + this.phoneNumber = phoneNumber; } private boolean isValidPhoneNumber(String phoneNumber) { @@ -60,26 +54,37 @@ public class SelfServiceCheckout { return false; } + // Her kunne man også fjernet første tegn i charArrayen og sjekket resten + // Dette kan vi gjøre siden vi allerede har validert de første 4-5 tegnene char[] chars = cleanedPhoneNumber.toCharArray(); + boolean firstIndex = true; for (char c : chars) { if (!Character.isDigit(c)) { - return false; + if (c != '+' && !firstIndex) { + return false; + } + firstIndex = false; } } + return true; } - // main-metode for å teste koden - public static void main(String[] args) { + // Del 4 + public void scanItem(String itemName, int amount, double price) { + double rebate = 0.0; + if (phoneNumber != null && day.equals("thu")) { + rebate = 0.1; + } + System.out.println(amount + "x " + itemName + ": " + (price - (price * rebate)) + " kr"); + } + // Testkode / main-metode + public static void main(String[] args) { SelfServiceCheckout checkout = new SelfServiceCheckout("thu"); - checkout.scanItem("Norvegia", 2, 120.0); - checkout.registerPhoneNumber("004742345678"); - checkout.scanItem("Tomat", 3, 5.0); - } }