package envoy.server.processors; import java.io.IOException; import envoy.event.IsTyping; import envoy.server.data.PersistenceManager; import envoy.server.data.User; import envoy.server.net.ConnectionManager; import envoy.server.net.ObjectWriteProxy; /** * This processor handles incoming {@link IsTyping} events. *

* Project: envoy-server-standalone
* File: IsTypingProcessor.java
* Created: 24.07.2020
* * @author Leon Hofmeister * @since Envoy Server v0.2-beta */ public class IsTypingProcessor implements ObjectProcessor { private static final ConnectionManager connectionManager = ConnectionManager.getInstance(); private static final PersistenceManager persistenceManager = PersistenceManager.getInstance(); @Override public void process(IsTyping event, long socketID, ObjectWriteProxy writeProxy) throws IOException { final var contact = persistenceManager.getContactByID(event.get()); if (contact instanceof User) { final var destinationID = event.getDestinationID(); if (connectionManager.isOnline(destinationID)) writeProxy.write(connectionManager.getSocketID(destinationID), event); } else writeProxy.writeToOnlineContacts(contact.getContacts(), event); } }