2020-02-05 07:09:25 +01:00
|
|
|
package envoy.client.net;
|
|
|
|
|
|
|
|
import java.util.function.Consumer;
|
|
|
|
import java.util.logging.Logger;
|
|
|
|
|
|
|
|
import envoy.data.Message.MessageStatus;
|
2020-06-20 10:00:38 +02:00
|
|
|
import envoy.event.MessageStatusChange;
|
2020-03-05 14:27:40 +01:00
|
|
|
import envoy.util.EnvoyLog;
|
2020-02-05 07:09:25 +01:00
|
|
|
|
2020-09-08 20:41:01 +02:00
|
|
|
import dev.kske.eventbus.EventBus;
|
|
|
|
|
2020-02-05 07:09:25 +01:00
|
|
|
/**
|
|
|
|
* Project: <strong>envoy-client</strong><br>
|
2020-06-20 10:00:38 +02:00
|
|
|
* File: <strong>MessageStatusChangeProcessor.java</strong><br>
|
2020-02-05 07:09:25 +01:00
|
|
|
* Created: <strong>4 Feb 2020</strong><br>
|
|
|
|
*
|
|
|
|
* @author Kai S. K. Engelbart
|
2020-03-23 21:52:33 +01:00
|
|
|
* @since Envoy Client v0.3-alpha
|
2020-02-05 07:09:25 +01:00
|
|
|
*/
|
2020-08-22 13:37:07 +02:00
|
|
|
public final class MessageStatusChangeProcessor implements Consumer<MessageStatusChange> {
|
2020-02-05 07:09:25 +01:00
|
|
|
|
2020-06-20 10:00:38 +02:00
|
|
|
private static final Logger logger = EnvoyLog.getLogger(MessageStatusChangeProcessor.class);
|
2020-02-05 07:09:25 +01:00
|
|
|
|
|
|
|
/**
|
2020-06-20 10:00:38 +02:00
|
|
|
* Dispatches a {@link MessageStatusChange} if the status is
|
2020-02-05 07:09:25 +01:00
|
|
|
* {@code RECEIVED} or {@code READ}.
|
|
|
|
*
|
|
|
|
* @param evt the status change event
|
2020-03-23 21:52:33 +01:00
|
|
|
* @since Envoy Client v0.3-alpha
|
2020-02-05 07:09:25 +01:00
|
|
|
*/
|
|
|
|
@Override
|
2020-06-20 10:00:38 +02:00
|
|
|
public void accept(MessageStatusChange evt) {
|
2020-02-18 16:34:14 +01:00
|
|
|
if (evt.get().ordinal() < MessageStatus.RECEIVED.ordinal()) logger.warning("Received invalid message status change " + evt);
|
2020-02-12 06:12:04 +01:00
|
|
|
else EventBus.getInstance().dispatch(evt);
|
2020-02-05 07:09:25 +01:00
|
|
|
}
|
|
|
|
}
|