From 8fdedab492f939b862c02240a13ddf31dd6ad753 Mon Sep 17 00:00:00 2001 From: mathias Date: Fri, 1 Oct 2021 20:09:18 +0200 Subject: [PATCH] Created the ResponderEvent --- .../autoresponder/event/ResponderEvent.java | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 src/main/java/de/gnmyt/autoresponder/event/ResponderEvent.java diff --git a/src/main/java/de/gnmyt/autoresponder/event/ResponderEvent.java b/src/main/java/de/gnmyt/autoresponder/event/ResponderEvent.java new file mode 100644 index 0000000..0ac6a94 --- /dev/null +++ b/src/main/java/de/gnmyt/autoresponder/event/ResponderEvent.java @@ -0,0 +1,79 @@ +package de.gnmyt.autoresponder.event; + +import de.gnmyt.autoresponder.SimpleAutoResponder; +import de.gnmyt.autoresponder.event.api.EventData; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; + +public class ResponderEvent { + + private static final Logger LOG = LoggerFactory.getLogger(ResponderEvent.class); + + private final SimpleAutoResponder responder; + + private final String appPackageName; + private final String messengerPackageName; + + private final int ruleId; + + /** + * Constructor of the {@link ResponderEvent} + * + * @param responder The current instance of your {@link SimpleAutoResponder} + * @param appPackageName The package name of the responder app + * @param messengerPackageName The package name of your whatsapp instance + * @param ruleId The id of the rule that has been executed + */ + public ResponderEvent(SimpleAutoResponder responder, String appPackageName, String messengerPackageName, int ruleId) { + this.responder = responder; + this.appPackageName = appPackageName; + this.messengerPackageName = messengerPackageName; + this.ruleId = ruleId; + } + + /** + * Calls all registered event listeners + */ + public void call() { + ArrayList eventList = responder.getEventManager().getEvents(this.getClass()); + + if (eventList == null) return; + + for (EventData data : eventList) { + try { + data.method.invoke(data.object, this); + } catch (Exception e) { + LOG.error("Could not execute event: {}", e.getMessage()); + } + } + } + + /** + * Gets the app package name of the responder + * + * @return the app package name of the responder + */ + public String getAppPackageName() { + return appPackageName; + } + + /** + * Gets the package name of your whatsapp instance + * + * @return the package name of your whatsapp instance + */ + public String getMessengerPackageName() { + return messengerPackageName; + } + + /** + * Gets the id of the rule provided by the responder + * + * @return the id of the rule provided by the responder + */ + public int getRuleId() { + return ruleId; + } +}