From 1a03c517f6c127081c15321c5a4904e17585610c Mon Sep 17 00:00:00 2001 From: Daniil Date: Tue, 31 Jul 2018 14:32:53 +0700 Subject: [PATCH] New version of cache-like syntax approach --- .../events/cachelike/EventHandlerBase.java | 11 ++++++++++ .../mc/core/events/cachelike/Handler.java | 16 -------------- .../core/events/cachelike/Preprocessor.java | 2 +- .../core/events/cachelike/SampleHandler.java | 21 +++++++++++++++++++ 4 files changed, 33 insertions(+), 17 deletions(-) create mode 100644 event-loop/src/main/java/mc/core/events/cachelike/EventHandlerBase.java delete mode 100644 event-loop/src/main/java/mc/core/events/cachelike/Handler.java create mode 100644 event-loop/src/main/java/mc/core/events/cachelike/SampleHandler.java diff --git a/event-loop/src/main/java/mc/core/events/cachelike/EventHandlerBase.java b/event-loop/src/main/java/mc/core/events/cachelike/EventHandlerBase.java new file mode 100644 index 0000000..b4eecc5 --- /dev/null +++ b/event-loop/src/main/java/mc/core/events/cachelike/EventHandlerBase.java @@ -0,0 +1,11 @@ +package mc.core.events.cachelike; + +import java.util.List; + +public class EventHandlerBase { + private List contextList; + + protected void push(PreprocessorContext context){ + contextList.add(context); + } +} diff --git a/event-loop/src/main/java/mc/core/events/cachelike/Handler.java b/event-loop/src/main/java/mc/core/events/cachelike/Handler.java deleted file mode 100644 index 0208662..0000000 --- a/event-loop/src/main/java/mc/core/events/cachelike/Handler.java +++ /dev/null @@ -1,16 +0,0 @@ -package mc.core.events.cachelike; - -import mc.core.events.LoginEvent; - -public class SampleHandler { - - @Preprocessor(preprocessor = (new PreprocessorContext() { - @Override - protected void init() { - - } - }).class) - public void onLogin(LoginEvent event){ - - } -} diff --git a/event-loop/src/main/java/mc/core/events/cachelike/Preprocessor.java b/event-loop/src/main/java/mc/core/events/cachelike/Preprocessor.java index 36bd1f3..28c7c49 100644 --- a/event-loop/src/main/java/mc/core/events/cachelike/Preprocessor.java +++ b/event-loop/src/main/java/mc/core/events/cachelike/Preprocessor.java @@ -1,5 +1,5 @@ package mc.core.events.cachelike; public @interface Preprocessor { - Class preprocessor(); + int index(); } diff --git a/event-loop/src/main/java/mc/core/events/cachelike/SampleHandler.java b/event-loop/src/main/java/mc/core/events/cachelike/SampleHandler.java new file mode 100644 index 0000000..61241b1 --- /dev/null +++ b/event-loop/src/main/java/mc/core/events/cachelike/SampleHandler.java @@ -0,0 +1,21 @@ +package mc.core.events.cachelike; + +import mc.core.events.LoginEvent; + +public class SampleHandler extends EventHandlerBase { + + public SampleHandler() { + push(new PreprocessorContext() { + @Override + protected void init() { + System.out.println("I am context #0!"); + } + }); + + } + + @Preprocessor(index = 0) // Map constructor #0 to this event handler + public void onLogin(LoginEvent event){ + + } +}