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.List; public class AkkaMainSystem extends AbstractBehavior { public static class Create {} public static Behavior create() { return Behaviors.setup(AkkaMainSystem::new); } // Statische Referenz auf das DistributionCenter private static ActorRef distributionCenter; // Statische Methode zum Abrufen der DistributionCenter-Referenz public static ActorRef getDistributionCenter() { return distributionCenter; } private AkkaMainSystem(ActorContext context) { super(context); // Erstellen des Adressbuchs ArrayList> customers = new ArrayList<>(); customers.add(getContext().spawn(Customer.create("Alice"), "alice")); customers.add(getContext().spawn(Customer.create("Bob"), "bob")); customers.add(getContext().spawn(Customer.create("Charles"), "charles")); customers.add(getContext().spawn(Customer.create("Derick"), "derick")); ActorRef addressBook = getContext().spawn(AddressBook.create(customers), "addressBook"); // Erstellen des Verteilzentrums distributionCenter = getContext().spawn(DistributionCenter.create(addressBook), "distributionCenter"); } @Override public Receive createReceive() { return newReceiveBuilder().onMessage(Create.class, this::onCreate).build(); } private Behavior onCreate(Create command) { // Additional setup if needed return this; } }