package driver;_x000D_
_x000D_
import java.util.ArrayList;_x000D_
import models.Instructie;_x000D_
import models.Knaller;_x000D_
import static models.Product.EURO;_x000D_
import models.Vuurpijl;_x000D_
import models.Vuurwerk;_x000D_
_x000D_
public class HappyNewYearDriver {_x000D_
_x000D_
    /**_x000D_
     * @param args the command line arguments_x000D_
     */_x000D_
    public static void main(String[] args) {_x000D_
        ArrayList<Vuurwerk> pakket = new ArrayList<Vuurwerk>();_x000D_
_x000D_
        System.out.println("Happy new year from: Burak, IS109, 500740123");_x000D_
_x000D_
        stap1(pakket);_x000D_
        stap2(pakket);_x000D_
        stap3(pakket);_x000D_
        stap4(pakket);_x000D_
        stap5(pakket);_x000D_
        stap6(pakket);_x000D_
    }_x000D_
_x000D_
    private static void stap1(ArrayList<Vuurwerk> pakket) {_x000D_
        System.out.println("\n--- STAP 1 ---");_x000D_
_x000D_
        Vuurwerk vuurwerk;_x000D_
_x000D_
        vuurwerk = new Vuurwerk("Veiligheidsbril", 2.5,_x000D_
                new Instructie(true, 6, "Draag bij aansteken"));_x000D_
        pakket.add(vuurwerk);_x000D_
        System.out.println(vuurwerk);_x000D_
_x000D_
        vuurwerk = new Vuurwerk("Safety glass", 2.5,_x000D_
                new Instructie(false, 6, "Wear before ignition"));_x000D_
        pakket.add(vuurwerk);_x000D_
        System.out.println(vuurwerk);_x000D_
_x000D_
        vuurwerk = new Vuurwerk("Aansteeklont zonder instructie", 0.25, null);_x000D_
        pakket.add(vuurwerk);_x000D_
        System.out.println(vuurwerk);_x000D_
    }_x000D_
_x000D_
    private static void stap2(ArrayList<Vuurwerk> pakket) {_x000D_
        System.out.println("\n--- STAP 2 ---");_x000D_
_x000D_
        Knaller knaller;_x000D_
_x000D_
        // knaller met Engelstalige instructie en 75 decibel_x000D_
        knaller = new Knaller(777, 75, "Celebration Crackers", 10,_x000D_
                new Instructie(false, 21, "Keep minimum 10 ft distance"));_x000D_
        pakket.add(knaller);_x000D_
        System.out.println(knaller);_x000D_
_x000D_
        // knaller met Nederlandstalige instructie en 120 decibel_x000D_
        knaller = new Knaller(500, 120, "Peking Rol", 45,_x000D_
                new Instructie(true, 21, "Houd minimaal 5 meter afstand"));_x000D_
        pakket.add(knaller);_x000D_
        System.out.println(knaller);_x000D_
_x000D_
        // knaller met Nederlandstalige instructie en 125 decibel_x000D_
        knaller = new Knaller(1000, 125, "Shanghai Rol", 85,_x000D_
                new Instructie(true, 21, "Houd minimaal 5 meter afstand"));_x000D_
        pakket.add(knaller);_x000D_
        System.out.println(knaller);_x000D_
_x000D_
        // knaller zonder instructie en 100 decibel_x000D_
        knaller = new Knaller(1000, 100, "Hongkong Rol", 82.5, null);_x000D_
        pakket.add(knaller);_x000D_
        System.out.println(knaller);_x000D_
    }_x000D_
_x000D_
    private static void stap3(ArrayList<Vuurwerk> pakket) {_x000D_
        System.out.println("\n--- STAP 3 ---");_x000D_
_x000D_
        Vuurpijl vuurpijl;_x000D_
_x000D_
        // vuurpijl met Nederlandstalige instructie, correcte kleurverhouding, leeftijd 10_x000D_
        vuurpijl = new Vuurpijl(40, new int[]{50, 25, 25}, "Cruise Rocket", 2.50,_x000D_
                new Instructie(true, 10, "Niet in de hand houden"));_x000D_
        pakket.add(vuurpijl);_x000D_
        System.out.println(vuurpijl);_x000D_
_x000D_
        // vuurpijl met Nederlandstalige instructie, incorrecte kleurverhouding, leeftijd 16_x000D_
        vuurpijl = new Vuurpijl(40, new int[]{25, 30, 44}, "Killing Arrow", 4.25,_x000D_
                new Instructie(true, 16, "Niet in de hand houden"));_x000D_
        pakket.add(vuurpijl);_x000D_
        System.out.println(vuurpijl);_x000D_
_x000D_
        // vuurpijl met Engelstalige instructie, incorrecte kleurverhouding, leeftijd 20_x000D_
        vuurpijl = new Vuurpijl(40, new int[]{50, 41, 10}, "Magic Sky", 2.75,_x000D_
                new Instructie(false, 20, "Keep minimum 10 ft distance"));_x000D_
        pakket.add(vuurpijl);_x000D_
        System.out.println(vuurpijl);_x000D_
_x000D_
        // vuurpijl zonder instructie, correcte kleurverhouding_x000D_
        vuurpijl = new Vuurpijl(40, new int[]{50, 50, 0}, "Golden Sky", 3.25, null);_x000D_
        pakket.add(vuurpijl);_x000D_
        System.out.println(vuurpijl);_x000D_
    }_x000D_
_x000D_
    public static void stap4(ArrayList<Vuurwerk> pakket) {_x000D_
        System.out.println("\n--- STAP 4 ---");_x000D_
        toonVuurwerk(pakket);_x000D_
    }_x000D_
_x000D_
    private static void toonVuurwerk(ArrayList<Vuurwerk> pakket) {_x000D_
        double totaalPrijs = 0;_x000D_
        for (Vuurwerk i : pakket) { //loop door de array Vuurwerk_x000D_
            totaalPrijs += i.getPrijs(); //totaalPrijs telt op i aantal keren met getPrijs_x000D_
            System.out.println(i.toString()); //print al het vuurwerk_x000D_
        }_x000D_
        System.out.println("\n  Kosten vuurwerkpakket: " + EURO + totaalPrijs); //print totaalprijs_x000D_
    }_x000D_
_x000D_
    private static void toonInstructies(ArrayList<Vuurwerk> pakket, int index) {_x000D_
        if ((index >= 0) && (index < pakket.size())) { //als index binnen bereik is doe:_x000D_
            if (pakket.get(index).getInstructie() != null) { //als getInstructie() uit array niet null is:_x000D_
                System.out.println(pakket.get(index).getInstructie()); //print de instructie voor opgegeven index_x000D_
            } else {_x000D_
                System.out.println("Instructie ontbreekt."); //als deze null is, print instructie ontbreekt_x000D_
            }_x000D_
_x000D_
        } else {_x000D_
            System.out.println("Index valt buiten grenzen."); //als index buiten bereik is, print_x000D_
        }_x000D_
    }_x000D_
_x000D_
    public static void stap5(ArrayList<Vuurwerk> pakket) {_x000D_
        System.out.println("\n--- STAP 5 ---");_x000D_
        toonInstructies(pakket, -1);_x000D_
        toonInstructies(pakket, 3);_x000D_
        toonInstructies(pakket, 10);_x000D_
        toonInstructies(pakket, 11);_x000D_
    }_x000D_
_x000D_
    public static void stap6(ArrayList<Vuurwerk> pakket) {_x000D_
        System.out.println("\n--- STAP 6 ---");_x000D_
_x000D_
        printHardeKnallers(pakket, 100);_x000D_
    }_x000D_
_x000D_
    private static void printHardeKnallers(ArrayList<Vuurwerk> pakket, int maxDecibel) {_x000D_
        for (Vuurwerk i : pakket) { //loop door de array_x000D_
            if (i instanceof Knaller) { //gebruik instanceof om methodes van de subclass te kunnen gebruiken_x000D_
                if (((Knaller) i).getDecibel() > maxDecibel) { //als getDecibel() groter is dan opgegeven maxDecibel_x000D_
                    System.out.println(i.toString()); //print de toString van i (index)_x000D_
                }_x000D_
            }_x000D_
        }_x000D_
    }_x000D_
}_x000D_

//als getInstructie() uit array niet null is:_x000D_
package driver;_x000D_
_x000D_
import java.util.ArrayList;_x000D_
import models.Instructie;_x000D_
import models.Knaller;_x000D_
import static models.Product.EURO;_x000D_
import models.Vuurpijl;_x000D_
import models.Vuurwerk;_x000D_
_x000D_
public class HappyNewYearDriver {_x000D_
_x000D_
    /**_x000D_
     * @param args the command line arguments_x000D_
     */_x000D_
    public static void main(String[] args) {_x000D_
        ArrayList<Vuurwerk> pakket = new ArrayList<Vuurwerk>();_x000D_
_x000D_
        System.out.println("Happy new year from: Burak, IS109, 500740123");_x000D_
_x000D_
        stap1(pakket);_x000D_
        stap2(pakket);_x000D_
        stap3(pakket);_x000D_
        stap4(pakket);_x000D_
        stap5(pakket);_x000D_
        stap6(pakket);_x000D_
    }_x000D_
_x000D_
    private static void stap1(ArrayList<Vuurwerk> pakket) {_x000D_
        System.out.println("\n--- STAP 1 ---");_x000D_
_x000D_
        Vuurwerk vuurwerk;_x000D_
_x000D_
        vuurwerk = new Vuurwerk("Veiligheidsbril", 2.5,_x000D_
                new Instructie(true, 6, "Draag bij aansteken"));_x000D_
        pakket.add(vuurwerk);_x000D_
        System.out.println(vuurwerk);_x000D_
_x000D_
        vuurwerk = new Vuurwerk("Safety glass", 2.5,_x000D_
                new Instructie(false, 6, "Wear before ignition"));_x000D_
        pakket.add(vuurwerk);_x000D_
        System.out.println(vuurwerk);_x000D_
_x000D_
        vuurwerk = new Vuurwerk("Aansteeklont zonder instructie", 0.25, null);_x000D_
        pakket.add(vuurwerk);_x000D_
        System.out.println(vuurwerk);_x000D_
    }_x000D_
_x000D_
    private static void stap2(ArrayList<Vuurwerk> pakket) {_x000D_
        System.out.println("\n--- STAP 2 ---");_x000D_
_x000D_
        Knaller knaller;_x000D_
_x000D_
        // knaller met Engelstalige instructie en 75 decibel_x000D_
        knaller = new Knaller(777, 75, "Celebration Crackers", 10,_x000D_
                new Instructie(false, 21, "Keep minimum 10 ft distance"));_x000D_
        pakket.add(knaller);_x000D_
        System.out.println(knaller);_x000D_
_x000D_
        // knaller met Nederlandstalige instructie en 120 decibel_x000D_
        knaller = new Knaller(500, 120, "Peking Rol", 45,_x000D_
                new Instructie(true, 21, "Houd minimaal 5 meter afstand"));_x000D_
        pakket.add(knaller);_x000D_
        System.out.println(knaller);_x000D_
_x000D_
        // knaller met Nederlandstalige instructie en 125 decibel_x000D_
        knaller = new Knaller(1000, 125, "Shanghai Rol", 85,_x000D_
                new Instructie(true, 21, "Houd minimaal 5 meter afstand"));_x000D_
        pakket.add(knaller);_x000D_
        System.out.println(knaller);_x000D_
_x000D_
        // knaller zonder instructie en 100 decibel_x000D_
        knaller = new Knaller(1000, 100, "Hongkong Rol", 82.5, null);_x000D_
        pakket.add(knaller);_x000D_
        System.out.println(knaller);_x000D_
    }_x000D_
_x000D_
    private static void stap3(ArrayList<Vuurwerk> pakket) {_x000D_
        System.out.println("\n--- STAP 3 ---");_x000D_
_x000D_
        Vuurpijl vuurpijl;_x000D_
_x000D_
        // vuurpijl met Nederlandstalige instructie, correcte kleurverhouding, leeftijd 10_x000D_
        vuurpijl = new Vuurpijl(40, new int[]{50, 25, 25}, "Cruise Rocket", 2.50,_x000D_
                new Instructie(true, 10, "Niet in de hand houden"));_x000D_
        pakket.add(vuurpijl);_x000D_
        System.out.println(vuurpijl);_x000D_
_x000D_
        // vuurpijl met Nederlandstalige instructie, incorrecte kleurverhouding, leeftijd 16_x000D_
        vuurpijl = new Vuurpijl(40, new int[]{25, 30, 44}, "Killing Arrow", 4.25,_x000D_
                new Instructie(true, 16, "Niet in de hand houden"));_x000D_
        pakket.add(vuurpijl);_x000D_
        System.out.println(vuurpijl);_x000D_
_x000D_
        // vuurpijl met Engelstalige instructie, incorrecte kleurverhouding, leeftijd 20_x000D_
        vuurpijl = new Vuurpijl(40, new int[]{50, 41, 10}, "Magic Sky", 2.75,_x000D_
                new Instructie(false, 20, "Keep minimum 10 ft distance"));_x000D_
        pakket.add(vuurpijl);_x000D_
        System.out.println(vuurpijl);_x000D_
_x000D_
        // vuurpijl zonder instructie, correcte kleurverhouding_x000D_
        vuurpijl = new Vuurpijl(40, new int[]{50, 50, 0}, "Golden Sky", 3.25, null);_x000D_
        pakket.add(vuurpijl);_x000D_
        System.out.println(vuurpijl);_x000D_
    }_x000D_
_x000D_
    public static void stap4(ArrayList<Vuurwerk> pakket) {_x000D_
        System.out.println("\n--- STAP 4 ---");_x000D_
        toonVuurwerk(pakket);_x000D_
    }_x000D_
_x000D_
    private static void toonVuurwerk(ArrayList<Vuurwerk> pakket) {_x000D_
        double totaalPrijs = 0;_x000D_
        for (Vuurwerk i : pakket) { //loop door de array Vuurwerk_x000D_
            totaalPrijs += i.getPrijs(); //totaalPrijs telt op i aantal keren met getPrijs_x000D_
            System.out.println(i.toString()); //print al het vuurwerk_x000D_
        }_x000D_
        System.out.println("\n  Kosten vuurwerkpakket: " + EURO + totaalPrijs); //print totaalprijs_x000D_
    }_x000D_
_x000D_
    private static void toonInstructies(ArrayList<Vuurwerk> pakket, int index) {_x000D_
        if ((index >= 0) && (index < pakket.size())) { //als index binnen bereik is doe:_x000D_
            if (pakket.get(index).getInstructie() != null) { //als getInstructie()<SUF>
                System.out.println(pakket.get(index).getInstructie()); //print de instructie voor opgegeven index_x000D_
            } else {_x000D_
                System.out.println("Instructie ontbreekt."); //als deze null is, print instructie ontbreekt_x000D_
            }_x000D_
_x000D_
        } else {_x000D_
            System.out.println("Index valt buiten grenzen."); //als index buiten bereik is, print_x000D_
        }_x000D_
    }_x000D_
_x000D_
    public static void stap5(ArrayList<Vuurwerk> pakket) {_x000D_
        System.out.println("\n--- STAP 5 ---");_x000D_
        toonInstructies(pakket, -1);_x000D_
        toonInstructies(pakket, 3);_x000D_
        toonInstructies(pakket, 10);_x000D_
        toonInstructies(pakket, 11);_x000D_
    }_x000D_
_x000D_
    public static void stap6(ArrayList<Vuurwerk> pakket) {_x000D_
        System.out.println("\n--- STAP 6 ---");_x000D_
_x000D_
        printHardeKnallers(pakket, 100);_x000D_
    }_x000D_
_x000D_
    private static void printHardeKnallers(ArrayList<Vuurwerk> pakket, int maxDecibel) {_x000D_
        for (Vuurwerk i : pakket) { //loop door de array_x000D_
            if (i instanceof Knaller) { //gebruik instanceof om methodes van de subclass te kunnen gebruiken_x000D_
                if (((Knaller) i).getDecibel() > maxDecibel) { //als getDecibel() groter is dan opgegeven maxDecibel_x000D_
                    System.out.println(i.toString()); //print de toString van i (index)_x000D_
                }_x000D_
            }_x000D_
        }_x000D_
    }_x000D_
}_x000D_
