From ba6e5201d3eea1a0a36f685d4e1a5f57fcefe199 Mon Sep 17 00:00:00 2001 From: Mike Vink Date: Wed, 4 Aug 2021 18:45:54 +0200 Subject: feat(presentatie): testing gif --- domain/src/main/java/presentatie/Bart.java | 70 ++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 domain/src/main/java/presentatie/Bart.java (limited to 'domain/src/main/java/presentatie/Bart.java') diff --git a/domain/src/main/java/presentatie/Bart.java b/domain/src/main/java/presentatie/Bart.java new file mode 100644 index 0000000..085b0c9 --- /dev/null +++ b/domain/src/main/java/presentatie/Bart.java @@ -0,0 +1,70 @@ +package presentatie; + +import akka.actor.typed.ActorRef; +import akka.actor.typed.Behavior; +import akka.actor.typed.javadsl.AbstractBehavior; +import akka.actor.typed.javadsl.ActorContext; +import akka.actor.typed.javadsl.Behaviors; +import akka.actor.typed.javadsl.Receive; + +import java.time.Duration; + +public class Bart extends AbstractBehavior { + + public interface Bericht {} + + public static class reviewMijnCodeAlsjeblieft implements Bericht { + public ActorRef replyTo; + public reviewMijnCodeAlsjeblieft(ActorRef replyTo) { + this.replyTo = replyTo; + } + } + + public static class isKlaarMetCodeReview implements Bericht, Marco.Bericht { + public String string; + public isKlaarMetCodeReview(String string) { + this.string = string; + } + } + + public static Behavior create() { + return Behaviors.setup(context -> new Bart(context)); + } + + public Bart(ActorContext context) { + super(context); + } + + @Override + public Receive createReceive() { + return newReceiveBuilder() + .onMessage(Bart.reviewMijnCodeAlsjeblieft.class, this::reviewMarcosCode) + .build(); + } + + private Behavior bezigMetCodeReview() { + return newReceiveBuilder() + .onMessage(Bart.reviewMijnCodeAlsjeblieft.class, this::benAlBezig) + .build(); + } + + private Behavior reviewMarcosCode(reviewMijnCodeAlsjeblieft codeReviewVraag) { + getContext().getLog().info("Bart ontvangt vraag van Marco en begint met code review, en stuurt een reactie als hij klaar is."); + Duration seconds = Duration.ofSeconds(7); + getContext().getSystem().scheduler().scheduleOnce(seconds, new Runnable() { + @Override + public void run() { + codeReviewVraag.replyTo.tell(new isKlaarMetCodeReview("Ben klaar met de code review!")); + } + }, getContext().getExecutionContext()); + return bezigMetCodeReview(); + } + + private Behavior benAlBezig(reviewMijnCodeAlsjeblieft codeReviewVraag) { + getContext().getLog().info("Bart ontvangt tweede keer de vraag van Marco en reageert nu gelijk."); + codeReviewVraag.replyTo.tell(new isKlaarMetCodeReview("Ben al bezig met de code review, Life is bad.")); + return this; + } + + +} -- cgit v1.2.3