From b4ae4d671a090ab77a081670442da9add73b648d Mon Sep 17 00:00:00 2001 From: olhag Date: Fri, 17 May 2024 16:25:16 +0200 Subject: [PATCH] =?UTF-8?q?Erstelle=20Verteilzentrum=20mit=20vier=20Wagen,?= =?UTF-8?q?=20von=20denen=20jeder=20eine=20zuf=C3=A4llige=20Route=20hat.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../7.1/executionHistory/executionHistory.bin | Bin 57780 -> 65216 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/7.1/fileHashes/fileHashes.bin | Bin 21447 -> 21597 bytes .gradle/7.1/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .gradle/checksums/checksums.lock | Bin 17 -> 17 bytes .../example/AddressBook$CustomerMessage.class | Bin 1260 -> 1260 bytes .../java/main/com/example/AddressBook.class | Bin 6068 -> 6679 bytes .../main/com/example/AkkaMainSystem.class | Bin 6179 -> 5219 bytes .../DistributionCenter$ArriveMessage.class | Bin 1386 -> 1386 bytes .../main/com/example/DistributionCenter.class | Bin 4269 -> 10242 bytes .../compileJava/previous-compilation-data.bin | Bin 20549 -> 20718 bytes src/main/java/com/example/AddressBook.java | 36 ++++-- src/main/java/com/example/AkkaMainSystem.java | 17 ++- .../java/com/example/DistributionCenter.java | 109 ++++++++++++++++-- 15 files changed, 132 insertions(+), 30 deletions(-) diff --git a/.gradle/7.1/executionHistory/executionHistory.bin b/.gradle/7.1/executionHistory/executionHistory.bin index 8ec8121ce4fb57346b7f2245a47ddb83b9acc0c4..670278bfcddf749003a0a9d7c8587ff4fc017add 100644 GIT binary patch delta 1767 zcmdmTnEAk8<_RKD4%jQ^#!Zj*8W}6#j8Kos< zW~Emp!7^jzizM6 zf41@d3nDU ziuzWbCzJo}EEZ6Zv=d*WWEuPI-=A0eu6k{n+_>xQ4bI%c+Zhy#%Y8ZZf%XvHaxNn*uCnR<7MPx$vfp#KkB4ZvPB+ zZiuma7f`maDf}`};)mg5jmiFT$}I0@e%LZOZm;s>_dqQZUIPuEx>t3w#w`JsX&}zI zy=oFux80GLx4uYOe}bNk^-`J6cA&%$!=)^fdG=|sG=NlD?Ngb22B@VA#CdQ_jb#pq z!FAi5<0R1dABH!$CNJ2hI63RK0Lw0reRa1DAq=kl8k27WMUR3+-{00`xd39w+|i5p zclit7TW1Z+3C0(A3M3B&J^?%W6&K@Dm(1dlqRgbylFa-(=hVEC)FKt1{KOPrV2~!J zr@{g;CUlYI?zubPhxNQ+KlpEP&oi+84{Vdm_nWZX0|m|c{R$H4wbs_Uucfv`Wa-51 z%DglGC0Nx}ugP}hN|QMc2(V0=1$2+>0b^DWjN=C^S!aOd z442xn%mN7+-qT{82Nqfg6xsw5T6oW#btzcrLWLegi2uH_V>dW-9ShHaYVu|LOF(o6q*w zGs=6gx9`bJR}jsw`;rppf6saLDo_N^S;)x32+T!CCwD*8G%#jhkYxt)euMDrva(F0 z>{PSl;=J^-q&#EOWFymp^74G+#8OBmVl1FE7kv;(Ek70NyJi!w+_8;1<*V`MqTW*F z*|XC#o^89=p~rDoD`N2Eq9+SBV$Ve&iNT(W>OVYw+_9;xPedZu+HF$rg^3dvf*cLZ zMJur6BKOq1)S|?a)S&#*l2mwUB(n6$Hjf79N6cck*mtewTQU`F#BL5^GNKHqI9nmK z*dlt9<;!=6?l}bH-1$ERYydPT_5eBHocR0Jfknra+<(Y!XXHzJb7I>pu&Sm2`sc(S z&i2d2o;n7W&2(kCaC6OaV77ZQg(+x;-o-5?x9f!7-`&p*%AEVR*9c#`8epR0mb_bI j+bT#-oXu4dapXgT#PL(tol@jNzJCJy;vFO>%5nezO$lQf delta 684 zcmX@`mwC%!<_RKeSvs)^XhHo0?v7 z_tNUQKMdb+PR`q-%W?+DnLK}wq{NvQhqrOns__L^M>k&Hm&OHAwMBn&<6`;Ao!lNzYDPZ z1evb?-IV1oh;eSO+T=c<=vNSD!!13Qk06HCK9$KofTG_)9G)L)EKQez46`5REYm@Z z!XKtAy&%S_ABGUd{T~((De0e@5QfK3J&EA&#|~XS{`KJLr(s14Oh46Z1M2x<_=;OxfSfLSz?c=p_%XS0 zi3LPx;sGO;g&?`a-jZ<##xp*#S>wpC*Q diff --git a/.gradle/7.1/executionHistory/executionHistory.lock b/.gradle/7.1/executionHistory/executionHistory.lock index 067e1191f1d744f4564e2dcafe96054150feff3d..51fa88b9fec1c9f2bad816e2c54e0426f497f538 100644 GIT binary patch literal 17 UcmZQJ-Ffa%$-@Ly1_(F{062aHDF6Tf literal 17 UcmZQJ-Ffa%$-@Ly1_{Sx*-Q1xY*cHAM zX*&~;GP&1FO5x%Yez$)HJ2%AGy$dK?*c1*n5-15#Es{L>xR)AB+Z>*ElRtXt0U5k} zla;-}4BpA15Qg03b_m00@=gdtb@FSNh^&v4!fdXRh$9~wB#xiD?vx@I@*Qf&Cx{&Z z?sE{-f7HdB=a6V8+79p%BKB$?YJ<1ofg2;Ove(UWy*YBbe4598g32}$O+R3RwKzA(a)t}rS^vwzA4q$MB0BZ!0K=V`Z_hW}H bAOCvr^wY4S1*V^Bpk{3YYhYl_0_gw%EiMRF diff --git a/.gradle/7.1/fileHashes/fileHashes.lock b/.gradle/7.1/fileHashes/fileHashes.lock index 65942025d728c319e0737fc722c3c804ec53a6e6..dc5caf0f1ac0a789053d9a597aec043d26150e83 100644 GIT binary patch literal 17 VcmZR6t*}YBa<=Ot1~6dB1pqL$1V8`) literal 17 VcmZR6t*}YBa<=Ot1~6dO1pqK}1OEU3 diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index eb87a99dc20ccccfc3023234308ada0bd282c79a..2477e219537508d75aa612f0148b2a0d6f75e589 100644 GIT binary patch literal 17 VcmZR6_T&GuLYbG|3}C>x8URLi1@r&_ literal 17 VcmZR6_T&GuLYbG|3}C>h0RTnw1#tiX diff --git a/.gradle/checksums/checksums.lock b/.gradle/checksums/checksums.lock index 598d5bc9ffa48ef58841abc50f1b032c39750c13..28c9ac1735de378eb9a98bf441a62bd7d9ceb326 100644 GIT binary patch literal 17 UcmZSHc6HyxsH7{$7$86n070q+QUCw| literal 17 UcmZSHc6HyxsH7{$7$86l070S!N&o-= diff --git a/build/classes/java/main/com/example/AddressBook$CustomerMessage.class b/build/classes/java/main/com/example/AddressBook$CustomerMessage.class index ab7f89c0ce31604c9f77e4704cb119630d66909c..50347a35cbba5f697605deffbaf5c713aa7762f3 100644 GIT binary patch delta 29 kcmaFE`G#|YFN>fQ0}F#R11EzF10RDdgD`{KfA0}F#B11EzN10RDlgD`{4k-DI&XrmtYkHq4UK|LDNU_y(ER&;S}!*)?*U3tR}2Iua;O@X?R_&}(xD-aGw z231^xU6OvcQJNhp6ugV$I$Y0Si4E-4jpbHp_8yKK5MWTk`pxmyaGVUPTB~VGK`%!T zx;SDjwO6B`<30t1;usMdY%R3;UXGhFD)!rI zEbn6|m*p2{ZO%$RZsmACMj3MA(UIOgU3#A$)x*8IioN)Ny zXDh2}n>UtA4b}gAW!&tN|jUCPyt0}u)ha(ouoi~E#P_aP!52`_AniUSzu zxC37huPfz=yBP8!;kmZ8)5rz-bvq6-6ovwWJ;6XlZ&VM&^@^VQz^b*uRXr6eW!fVg zUy?1#>(}G0gF~TqJ$_>(xMd(5l)GQ%_zE#X5$(2&gpE@MLew%n+85~6{h>fCX2(%7 z5FT^Uaur|4xPp7;#v>F6_t$my?56U_Xy4$t5Bo*RzT9z{)Q@pIK>AB|FFP)@EMLVw zJj9Wd33-N2CPS_?pW--4=7Fpt>%$CwIms@*up;9Ayy7xxIm7V?Xy9@via#(EABpP0 zrf9z%rx;ocKe`mT!kX*0G}!T&xHaoKvw|mtU#(={5qs3~+Q;#voQtQZ)0y@eXW15y z4uty~s%g5j@wBw~KEoAbomIzQP_69vtB##!wnFmCTga<{q3{2)b&Dm=6=GxVKK7b8 zlY7YWFGdf^5ML&4cNXNlt>WK!N5MIc^9I%(I zDXs$DmQ7j*!K)3J#8#QmWF#ywT2T*MNMUL#wWNaETg-o0Mp;v{-zW&hHh>toP%`%WM zo`80Nkw%RENU72Z{^V5g3jR#`vj9sGDKp7os?Dd`OpU%I#_pwro9JUcGc#I3(sSw7 z=x&mA-8=UzCE4iHK9|Jj$Kf$I9);Vd-DzlxETrZ5v@c4H=HJ@rzK5(S_##8db^~tu zgy}O&2`B6mc#Y)U+EcORiLEWC2L^Apd8@fZA+_T}9! zfc+iRC^*2fvsL%o*h>FzqKo=SZz~m*`iS*3K(f5*G_t#W-c$nLo4;TSZ?rKTP%}50 z95Rp2tK@8Y;G7&9>|Qk-( Cl6ndN delta 2310 zcmY*Z2Y6Fe6#j4Wl9#;Pr0pxKw1qBcniR`ukpeANpjxoj0)lae=244jT9bexXmN`m zQZ9nv04HvXU`nYn6elX;-h1z@xbWPUAeisVyZ^c8Kl{A5rhH48_RK%qwgVW?(mJ(O z7OS^25y)3tVv}3j;|mz9-jb6wsOZlz09g$7U?@}*4tL&=?K1DPIdYII+-#_8F!EI7 za}=PjsAhvT7Y3twHqJF1BUFs!7=?0?Z<*mJ z!DtQ}juaPI3e$>F$uSn=7?ijX4vTh2f7eW%vaRB%#ssm?Qsb$?(JCf#Ou}S_g3iV) zQE8oKKZfI2)QL{(BxNc?vDlPWyi!rLdTDn&!x*o~Pa7bHD*2uh(5PY>$8^jfqO^}F z^EC}8U?#^boFsB>BiPBJ!Pa*|0Ccb7G>+482IUlMIo~i_RHq?;AjfPpF{lyaym(zC zP6TgV38_>V9COet?ziPRhNFdJF3uLO+6q{!*l){mOhFq*JI)cg_F`8IaTW78=Hpz^ zV6P?R0*>>sP~2!QRW4vC6kRN*tlo&lg3X2#Q_#V&7z-IZ@#ws!v!@wzjHnT5GBhm0 z#j=x^FjR`gmK;&8=DIaphRao4!Eq&)h`nl~YblngxSC@*&Jcb_-p~~c1H!@9*`Z)j zQ`88?jiNatD@Ik0GRliaXjqDs90IFEv!k$THA6;QWa7M7ysg!Urc#m-uH#rM8PWw@8)J}hD2shAVP!C1_JG)eE` z*d%rR{+G}6mgYz>J}+uGuvzTTPA!nshd2^wrfw2-Vz6DRLp9N62evZQ%B9H?E3{Ip zifv+$tC&43YF&kn9&DGL-XYF$f9zUq~k>e-)Ec)xa`re&p$8Q?k_?=?~HmBnchDn_bB`aOo!>qLX zHu*rB4gW~e0glz!nlAI>b&-e>H48UlDzl2V%&~(#HK9Bs=XV-(4P-LTV>s-oxPbaMa-Nx&?hzZ=Zg3pLOU=R@G7 z3Fzx^v~P%kyKJK-fz$gmT|W0fqW7bO8-0{$M9F?6G%2V*SQc;J;y zp!f=&pa=zU&@+#sc_^cN^rxFV6kSdSJmEZ8Q~bRt{vN#WA8U69(e@E-04xXKg`&c(Vz>%brEePkppRFwF)zZ2 zm+*3`Ew$u82GV@n$T_y+s4kMMW+8S{<1>@xNtT%o%ybUj>?VuHWc?PrLbO+LQp$N9 zIg-vZsbjVJ6bf-1XjK~$I8jEim{D}Im@;q-M;b;zN7-Q!GgD1T=KdPl(B`DvKTa){ zBdza6Akf``Q|e2T!#g#BGpi-cO(0|rE;+KZ81%4z3nD#;T0!8vUMvb^DTFTU#zp2V zeTV8FNGk-4rg0vLJ{UuztV9KU+NWZinPGV{dMZPzzaFpS4XW6I$#@fQQJQ_os#^a=a$pz5(kA ztkZ8yVEtMM!nf$RoA?UCcj$MScp>3?^!rWRM)(2!K@&ImtO;z{33VGfXnnd!wZ^dl z^>iL|Swr}s%L>8=U6v3&=rWh^1A4dVG9%^EZEj0fFM0xcZ#N#1H5|T|?n7I`RD6hz zkBA^&03G(fQKVuib87?t#I*frq|VY;DYZ7$)N$DitrzZq-`9W`~|;aKmNpDDd}$-0ZB|w lVkB9VFbh+VMRsmxqjM3-b~?WzS+zTvgJgMXj580i{srZ<^|k;2 diff --git a/build/classes/java/main/com/example/AkkaMainSystem.class b/build/classes/java/main/com/example/AkkaMainSystem.class index 545af7800103a435f06b24f887014187b108facb..fc8f7cb4376ba044366b45f87cf6cb966f5f2562 100644 GIT binary patch delta 1578 zcmYjRX;@TM7=F)e_s*S*GjmZCP{7#684NNMF(DP9Krjf6MiCsD5k!~~W{?(YsLVD} z>r_gsVMTio1vHpQ*=8$kw*0K;sXzJjmwJr8duO12+;iUVocDXb<$N=z@_unh=l_YE z0k9rF4@-r5Nr4V|GOoZXUS-I)=mby5X`#pCsM z`hvktfxvzVm8cT1l}J3!n5kRq;D4Bwa;qtsR~wTowb&+LyNnx9#~XzjiyJ!x?37WD zU3@~ws%T^o1O5^%MG0V~}GpOWHg^%4eafahr_W$*s_wZ0u#&;NTr{ zI`1*3km8*(?!qBHV7{E)!>7&J>^?qYP8Sd30U1{G@dncpo@Y!ONtI?8-z#rp$<(jp zk&d{4Zo!)pM(~z^w`GiCj9;`)*}JVGA`%qD*>IX+vx84d+59)#iqx~}>6DB{^xDvC zHQ}6u5AdOYkJMTCnCIHh6`W@-tyR_^!vI<>ldL27yQ6$E_6 z%M_;$-|*u~x(?s*)2elW|E{bs;zx!QzSEw<^W&F<3-BP#-VvI`gJqbIUh|Q((?u{M0T0t@LX-uLN61n&AH`$H zWH?TStOZbyP7sQQ=_m9!GRf@-|1&-#{9htTnqbr?J|-CTd4kx~Ox1^SH&SpTskK6VUPYg-ct`gH?TKv-x=z}&T}p#} z6ubKouP++J0+-T67C)Ad9`=eSae^e8mDW+T^`nn)KNqA0jIpOe}<{~nBl)E*}=mZZ<;ILb{ zcMSJWQVG$aj1IEpfAceom!X!eHcf%)5;6q1S)7#gH)>|+1&p!gy^7a}p~LHVgLVTo zaWUxi>*;w77$({{jn4$$#hI8jiT5b^R2dldF@siz(C>Fyl+)W7=fK*C^HY RZ|RSC+9cw8{D7a3_%EPbQKkR@ delta 2345 zcmZuy30PEB6#nnb+j#R}#;1rQeTsodh*CpZzMG}3wlB6>S+=REo%?1GviLsU{m;GU{Aay)zRX&Ey8i01=4}85 zF@2Lh!0FL(I?hnh&p?0VF{JQM+$jkRN_oigMJ&EmI_s2t2A6Nzw2&1J4-E#ZT{s&9 zR1_E(h(Y{-vraeRK%s$iFoc&n^IStwtYVlT9L^Uxy?g`h73#>u`36Q{B)>vRODI99 ziczG)6Xl*fsCDDja@S}k#u;#9JcBo@WQK3HFSj;Q<DQr6|cnp|s6ny+T2-^v|k z`KxAIp}EDr5JR8#)_j-LBWglIp^D2HI>gLkR%3kCRz$-z25m%Oy3Zd;J41&L6(XTZ ziZjmR_XR3*$3;R_fl7+Qg({q{Vg^G}TOJ}t4gNNwekuYCIWcd1lgrz?C={X)OQ|Ei zN=ru#W(qg682Yvk*G`r%adquzy9y(sqSnA{TtNlqOI==-L5f&@Kd+NglBlwCaixl@ z3|x&mzEmFTiejFMYYkk7>-l~;Gv@}1DHtfWM?*&xHyOAYBWYT!S+zcYSc6+|EHto) z3<{Ob+FaafU~`_NYC^_bJYZlY>KKelD>8!mR_ynMDS}RdX0?Hb$a037Dz9M} zlErV+)A@R}8<9R@;88rrcdLEbdhXDAu_t)8mhN1Kip`6)Lo7oM1#2TTHJ*0!XV;NI zj)ZEk~SZo@6tK6tj4~Ye-SMk;;g7ZD1iW^gP+32 z>s`oqNS!t(x-NDkeWc@Ke4^r01E1k@9!`8FafMsMS2|22da#cdC5`X?y^ww|a0AwO zu*R+6CmlcIfQnzlHT{)uNqTW8*C8X?=C!NM7qjUY=Zo2F zBWYq&U`spCW?UYk<)++3ly)?h>L`t0F#qt z!FpMosX&d#QlNRY7Wm4{@&;H_b(nSxlBE&3qY zeHcnr7mds8KS_!wa;jVJc?Xin1u~iH7dNi+G8erV;VW zc!iqKg-V%E#!d=lHpUW?>~Z5CtSP+dZ26%uMJ29@6UR3oD#?2-u1YKH<_vC{CeED z937p5*CMI6c?(H=pP3$ApsmE+q`TN$T90MRv54>;=G``)M|in;pN%7g?>8T`@pQtg z%!h3}CEHn#wL4%oQ>55PCks48Ih;T%h{{D$WL{LC&Od*Gd>E_j-1V?E7 e8$)qSNx*ST5i4Ufi(+-s`7uRfGE-Rsy#D|+A4Kf{ diff --git a/build/classes/java/main/com/example/DistributionCenter$ArriveMessage.class b/build/classes/java/main/com/example/DistributionCenter$ArriveMessage.class index 33285262f9ed588d943411a9c5eafb61f0e4403a..24f9bd0df979d28f25055429b363a78017713473 100644 GIT binary patch delta 41 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 diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index 2039ae26fef61d3e2970cf78be534bc925328a8a..370b12a5609fbdca4414148b1ed715602da5fae3 100644 GIT binary patch literal 20718 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 MX^uz{T?_mF0OGIO-~a#s literal 20549 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 { - ArrayList> customers = new ArrayList<>(); + private final ArrayList> customers; public interface Message {} @@ -28,24 +30,32 @@ public class AddressBook extends AbstractBehavior { } } - private AddressBook(ActorContext context, ArrayList> custo) { - super(context); - if (!custo.isEmpty()) { - this.customers.addAll(custo); - for (ActorRef cst : this.customers) { - cst.tell(new Customer.AddressHello(getContext().getSelf())); - } + // Nachricht, um die Liste der Kunden abzurufen + public static final class GetCustomers implements Message { + public final ActorRef>> replyTo; + + public GetCustomers(ActorRef>> replyTo) { + this.replyTo = replyTo; } } - public static Behavior create(ArrayList> custo) { - return Behaviors.setup(context -> new AddressBook(context, custo)); + private AddressBook(ActorContext context, ArrayList> customers) { + super(context); + this.customers = new ArrayList<>(customers); + for (ActorRef cst : this.customers) { + cst.tell(new Customer.AddressHello(getContext().getSelf())); + } + } + + public static Behavior create(ArrayList> customers) { + return Behaviors.setup(context -> new AddressBook(context, customers)); } @Override public Receive createReceive() { return newReceiveBuilder() .onMessage(CustomerMessage.class, this::onCustomerMessage) + .onMessage(GetCustomers.class, this::onGetCustomers) .build(); } @@ -58,4 +68,10 @@ public class AddressBook extends AbstractBehavior { msg.fragender.tell(new Customer.AddressMessage(addressOf, msg.truckReference)); return this; } + + // Methode, um die Liste der Kunden zu senden + private Behavior onGetCustomers(GetCustomers msg) { + msg.replyTo.tell(Collections.unmodifiableList(customers)); + return this; + } } diff --git a/src/main/java/com/example/AkkaMainSystem.java b/src/main/java/com/example/AkkaMainSystem.java index 134e8c2..bb8e684 100644 --- a/src/main/java/com/example/AkkaMainSystem.java +++ b/src/main/java/com/example/AkkaMainSystem.java @@ -26,35 +26,32 @@ public class AkkaMainSystem extends AbstractBehavior { return newReceiveBuilder().onMessage(Create.class, this::onCreate).build(); } - private Behavior onCreate(Create command) { // Erstellen des Adressbuchs ArrayList> customers = new ArrayList<>(); - ActorRef addressBook = getContext().spawn(AddressBook.create(customers), "addressBook"); - // 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))); } + ActorRef addressBook = getContext().spawn(AddressBook.create(customers), "addressBook"); + + // Nachricht GetCustomers senden, um Kundenreferenzen abzurufen // Erstellen des Verteilzentrums - ActorRef distributionCenter = getContext().spawn(DistributionCenter.create(), "distributionCenter"); - + 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<>(customers); + 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<>(); - paketeList.add(new Paket("Inhalt 1")); - paketeList.add(new Paket("Inhalt 2")); // Beispiel für den Aufruf der ArriveMessage-Nachricht mit korrekten Parametern distributionCenter.tell(new DistributionCenter.ArriveMessage(paketeList, truck)); - } - +*/ return this; } } diff --git a/src/main/java/com/example/DistributionCenter.java b/src/main/java/com/example/DistributionCenter.java index 64dbd3a..c29fdd1 100644 --- a/src/main/java/com/example/DistributionCenter.java +++ b/src/main/java/com/example/DistributionCenter.java @@ -8,10 +8,41 @@ import akka.actor.typed.javadsl.Behaviors; import akka.actor.typed.javadsl.Receive; import java.util.ArrayList; +import java.util.Collections; import java.util.List; public class DistributionCenter extends AbstractBehavior { + private final ActorRef addressBook; + private final List lagerraum = new ArrayList<>(); + + private DistributionCenter(ActorContext context, ActorRef addressBook) { + super(context); + this.addressBook = addressBook; + + // Erhalten Sie die replyTo-Referenz aus dem Kontext + ActorRef>> replyTo = context.spawnAnonymous(Behaviors.>>receive((ctx, message) -> { + if (message instanceof List) { + @SuppressWarnings("unchecked") + List> customers = (List>) message; + ctx.getLog().info("Kundenliste erhalten: {}", customers); + // Nachricht senden, um Routen zu generieren + context.getSelf().tell(new GenerateRoutes(customers)); + return Behaviors.same(); + } + return Behaviors.unhandled(); + })); + + // Anfrage an das AddressBook senden, um die Kundenliste abzurufen + addressBook.tell(new AddressBook.GetCustomers(replyTo)); + } + + public static Behavior create(ActorRef addressBook) { + return Behaviors.setup(context -> new DistributionCenter(context, addressBook)); + } + + interface Message {} + public static class ArriveMessage implements Message { private final List pakete; private final ActorRef truck; @@ -30,33 +61,91 @@ public class DistributionCenter extends AbstractBehavior context) { - super(context); + public static class LoadMessage implements Message { + private final List pakete; + + public LoadMessage(List pakete) { + this.pakete = pakete; + } + + public List getPakete() { + return pakete; + } } - interface Message {} + public static class GenerateRoutes implements Message { + private final List> customers; - public static Behavior create() { - return Behaviors.setup(DistributionCenter::new); + public GenerateRoutes(List> customers) { + this.customers = customers; + } + + public List> getCustomers() { + return customers; + } } @Override public Receive createReceive() { return newReceiveBuilder() .onMessage(ArriveMessage.class, this::onArriveMessage) + .onMessage(LoadMessage.class, this::onLoadMessage) + .onMessage(GenerateRoutes.class, this::onGenerateRoutes) .build(); } private Behavior onArriveMessage(ArriveMessage msg) { // Füge alle Pakete aus der Ankunftsnachricht dem Lagerraum hinzu - List pakete = msg.getPakete(); - getContext().getLog().info("Angekommene Pakete: {}", pakete); + List arrivedPackages = msg.getPakete(); + lagerraum.addAll(arrivedPackages); + getContext().getLog().info("Angekommene Pakete: {}", arrivedPackages); - // Hier kann die weitere Logik für die Behandlung der Pakete implementiert werden + // Entferne zufällig 3 Pakete aus dem Lagerraum und sende sie dem angekommenen Wagen + int numPackagesToSend = Math.min(3, lagerraum.size()); + List packagesToSend = new ArrayList<>(); + for (int i = 0; i < numPackagesToSend; i++) { + packagesToSend.add(lagerraum.remove(0)); + } + msg.getTruck().tell(new DeliveryCar.LoadMessage(packagesToSend)); - // Beispiel: Senden der Pakete an einen internen Akteur zur weiteren Verarbeitung - // ... + // Ausgabe, wie viele Pakete nun im Verteilzentrum vorhanden sind + getContext().getLog().info("Pakete im Verteilzentrum nach Laden: {}", lagerraum.size()); return this; } + + private Behavior onLoadMessage(LoadMessage msg) { + // Ausgabe, wie viele Pakete nun im Verteilzentrum vorhanden sind + getContext().getLog().info("Pakete im Verteilzentrum nach Laden: {}", lagerraum.size()); + + return this; + } + + private Behavior onGenerateRoutes(GenerateRoutes msg) { + List> customers = msg.getCustomers(); + generateRoutes(customers); + return this; + } + + private void generateRoutes(List> customers) { + // Überprüfen, ob die Kundenliste null oder leer ist + if (customers == null || customers.isEmpty()) { + getContext().getLog().info("Kundenliste ist leer oder null. Keine Routen generiert."); + return; + } + + // Erstelle vier Lastwagen mit zufälligen Routen + for (int i = 0; i < 4; i++) { + List> route = generateRandomRoute(customers); + getContext().spawn(DeliveryCar.create(route), "deliveryCar" + i); + getContext().getLog().info("Lieferwagen {} erstellt mit Route: {}", i, route); + } + } + + // Dummy-Methode zum Generieren einer zufälligen Route + private List> generateRandomRoute(List> customers) { + List> route = new ArrayList<>(customers); + Collections.shuffle(route); + return route; + } }