package com.example; import akka.actor.typed.ActorRef; import akka.actor.typed.Behavior; import akka.actor.typed.javadsl.*; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class AkkaMainSystem extends AbstractBehavior { public static class Create { } public static Behavior create() { return Behaviors.setup(AkkaMainSystem::new); } private AkkaMainSystem(ActorContext context) { super(context); } @Override public Receive createReceive() { return newReceiveBuilder().onMessage(Create.class, this::onCreate).build(); } private Behavior onCreate(Create command) { // Erstellen des Adressbuchs ArrayList> customers = new ArrayList<>(); // Erstellen von vier Empfänger*innen /* for (int i = 0; i < 4; i++) { customers.add(getContext().spawn(Customer.create("Customer" + (i + 1)), "customer" + (i + 1))); }*/ customers.add(getContext().spawn(Customer.create("Alice"+( 1)) ,"alice"+(1))); customers.add(getContext().spawn(Customer.create("Bob"+( 1)) ,"bob"+(1))); customers.add(getContext().spawn(Customer.create("Charles"+( 1)) ,"charles"+(1))); customers.add(getContext().spawn(Customer.create("Derick"+( 1)) ,"derick"+(1))); ActorRef addressBook = getContext().spawn(AddressBook.create(customers), "addressBook"); // Nachricht GetCustomers senden, um Kundenreferenzen abzurufen // Erstellen des Verteilzentrums ActorRef distributionCenter = getContext().spawn(DistributionCenter.create(addressBook), "distributionCenter"); /* // Erstellen von vier Wagen mit zufälligen Routen for (int i = 0; i < 4; i++) { List route = new ArrayList<>(); // Hier sollte die Liste der Orte sein, nicht der Kundenreferenzen Collections.shuffle(route); ActorRef truck = getContext().spawn(DeliveryCar.create(route), "truck" + (i + 1)); // Erstellen einer leeren Paketliste List paketeList = new ArrayList<>(); // Beispiel für den Aufruf der ArriveMessage-Nachricht mit korrekten Parametern distributionCenter.tell(new DistributionCenter.ArriveMessage(paketeList, truck)); } */ return this; } }