Skip to content

Commit aa1acd9

Browse files
Merge pull request #7 from DavidTheExplorer/1.3.0
v1.3.0 - TzevaAdomListener interface
2 parents 689c994 + e795354 commit aa1acd9

3 files changed

Lines changed: 17 additions & 10 deletions

File tree

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>dte</groupId>
66
<artifactId>tzevaadomapi</artifactId>
7-
<version>1.2.0</version>
7+
<version>1.3.0</version>
88

99
<build>
1010
<plugins>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package dte.tzevaadomapi.notifier;
2+
3+
import dte.tzevaadomapi.alert.Alert;
4+
5+
@FunctionalInterface
6+
public interface TzevaAdomListener
7+
{
8+
void onTzevaAdom(Alert alert);
9+
}

src/main/java/dte/tzevaadomapi/notifier/TzevaAdomNotifier.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,13 @@
2121
* <p>
2222
* A request for the most recent alert is sent every constant duration, and the result is then compared to the previous one.
2323
* If the 2 alerts don't equal - It's <b>Tzeva Adom</b> and the registered listeners are notified.
24-
* <p>
25-
* This class implements <b>Iterable{@literal <Alert>}</b> which returns the history of Tzeva Adom alerts.
2624
*/
27-
public class TzevaAdomNotifier implements Iterable<Alert>
25+
public class TzevaAdomNotifier
2826
{
2927
private final AlertSource alertSource;
3028
private final Duration requestDelay;
3129
private final Consumer<Exception> requestFailureHandler;
32-
private final Set<Consumer<Alert>> listeners = new HashSet<>();
30+
private final Set<TzevaAdomListener> listeners = new HashSet<>();
3331
private final Deque<Alert> history = new LinkedList<>();
3432

3533
private TzevaAdomNotifier(AlertSource alertSource, Duration requestDelay, Consumer<Exception> requestFailureHandler)
@@ -66,15 +64,15 @@ public CompletableFuture<Void> listen()
6664

6765
lastTzevaAdom = alert;
6866

69-
this.listeners.forEach(listener -> listener.accept(alert));
67+
this.listeners.forEach(listener -> listener.onTzevaAdom(alert));
7068
this.history.add(alert);
7169
}
7270
});
7371
}
7472

75-
public void addListener(Consumer<Alert> tzevaAdomListener)
73+
public void addListener(TzevaAdomListener listener)
7674
{
77-
this.listeners.add(tzevaAdomListener);
75+
this.listeners.add(listener);
7876
}
7977

8078
public Alert getLastAlert()
@@ -117,7 +115,7 @@ public static class Builder
117115
private AlertSource alertSource;
118116
private Duration requestDelay;
119117
private Consumer<Exception> requestFailureHandler = (exception) -> {};
120-
private Set<Consumer<Alert>> listeners = new HashSet<>();
118+
private Set<TzevaAdomListener> listeners = new HashSet<>();
121119

122120
public Builder requestFrom(AlertSource alertSource)
123121
{
@@ -137,7 +135,7 @@ public Builder onFailedRequest(Consumer<Exception> handler)
137135
return this;
138136
}
139137

140-
public Builder onTzevaAdom(Consumer<Alert> listener)
138+
public Builder onTzevaAdom(TzevaAdomListener listener)
141139
{
142140
this.listeners.add(listener);
143141
return this;

0 commit comments

Comments
 (0)