diff --git a/cms-api/src/main/java/com/condation/cms/api/hooks/HookSystem.java b/cms-api/src/main/java/com/condation/cms/api/hooks/HookSystem.java
index 896486ab..e9c65dc7 100644
--- a/cms-api/src/main/java/com/condation/cms/api/hooks/HookSystem.java
+++ b/cms-api/src/main/java/com/condation/cms/api/hooks/HookSystem.java
@@ -20,17 +20,7 @@
* along with this program. If not, see .
* #L%
*/
-import com.condation.cms.api.annotations.Filter;
-import com.condation.cms.api.annotations.Action;
-import com.condation.cms.api.utils.AnnotationsUtil;
-import com.google.common.collect.ArrayListMultimap;
-import com.google.common.collect.Multimap;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
import java.util.Map;
-import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
/**
@@ -39,78 +29,21 @@
*
* @author t.marx
*/
-@Slf4j
-public class HookSystem {
+public interface HookSystem {
- Multimap actions = ArrayListMultimap.create();
+ void register(Object sourceObject);
- Multimap filters = ArrayListMultimap.create();
+ public void registerAction(final String name, final ActionFunction hookFunction);
- public HookSystem () {
-
- }
- public HookSystem(HookSystem source) {
- this.actions.putAll(source.actions);
- this.filters.putAll(source.filters);
- }
+ public void registerAction(final String name, final ActionFunction hookFunction, int priority);
- public void register(Object sourceObject) {
- // Action-Methoden registrieren
- List> actionMethods
- = AnnotationsUtil.process(sourceObject, Action.class, List.of(ActionContext.class), Void.class);
+ public void registerFilter(final String name, final FilterFunction hookFunction);
- for (AnnotationsUtil.CMSAnnotation ann : actionMethods) {
- Action annotation = ann.annotation();
- registerAction(annotation.value(), context -> ann.invoke(context), annotation.priority());
- }
+ public void registerFilter(final String name, final FilterFunction hookFunction, int priority);
- // Filter-Methoden registrieren
- List> filterMethods
- = AnnotationsUtil.process(sourceObject, Filter.class, List.of(FilterContext.class), Object.class);
+ public ActionContext