From b7589e21c868b368bba378d702ba56292121e182 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sas=CC=8Ca=20Kocic=CC=81?= Date: Sat, 27 Jun 2020 13:25:46 +0200 Subject: [PATCH] onReceive callback --- src/Main.java | 2 +- src/Out.java | 13 +++++++++++++ src/Subscriber.java | 4 ++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/Main.java b/src/Main.java index 7b9549f..8c2b639 100644 --- a/src/Main.java +++ b/src/Main.java @@ -11,7 +11,7 @@ public class Main { public static void main(String[] args) { Subscriber subscriber = new Out(); Game game = new Game(10, 2, subscriber); + subscriber.onReceive(s -> { System.out.println(s); return null; }); game.players.play(); - System.out.println(subscriber.toString()); } } diff --git a/src/Out.java b/src/Out.java index 5952b6e..f184d31 100644 --- a/src/Out.java +++ b/src/Out.java @@ -1,9 +1,17 @@ import java.util.ArrayList; +import java.util.function.Function; /** * The type Out. */ public class Out implements Subscriber { + Function callback = new Function() { + @Override + public Void apply(String s) { + return null; + } + }; + /** * The Output. */ @@ -35,5 +43,10 @@ public class Out implements Subscriber { public void receive(String message) { output.add(message); + callback.apply(message); + } + + public void onReceive(Function callback) { + this.callback = callback; } } diff --git a/src/Subscriber.java b/src/Subscriber.java index 23c9d67..2842f17 100644 --- a/src/Subscriber.java +++ b/src/Subscriber.java @@ -1,5 +1,9 @@ +import java.util.function.Function; + public interface Subscriber { void receive(String message); String toString(); + + void onReceive(Function callback); }