package envoy.server.processors; import java.io.IOException; import envoy.event.IsTyping; import envoy.server.data.*; import envoy.server.net.*; /** * This processor handles incoming {@link IsTyping} events. * * @author Leon Hofmeister * @since Envoy Server v0.2-beta */ public final 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); } }