1 package org.apache.archiva.repository.features;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.archiva.event.Event;
23 import org.apache.archiva.event.EventHandler;
24
25 import java.util.ArrayList;
26 import java.util.Collection;
27 import java.util.List;
28
29 public class AbstractFeature {
30 private List<EventHandler> listener = new ArrayList<>();
31
32 AbstractFeature() {
33
34 }
35
36 AbstractFeature(EventHandler listener) {
37 this.listener.add(listener);
38 }
39
40 AbstractFeature(Collection<EventHandler> listeners) {
41 this.listener.addAll(listeners);
42 }
43
44 public void addListener(EventHandler listener) {
45 if (!this.listener.contains(listener)) {
46 this.listener.add(listener);
47 }
48 this.listener.add(listener);
49 }
50
51 public void removeListener(EventHandler listener) {
52 this.listener.remove(listener);
53 }
54
55 public void clearListeners() {
56 this.listener.clear();
57 }
58
59 public void pushEvent(Event event) {
60 for(EventHandler listr : listener) {
61 listr.handle(event);
62 }
63 }
64
65
66 }