package envoy.server.processors; import java.io.IOException; import java.util.stream.Collectors; import envoy.data.Contact; import envoy.event.contact.ContactSearchRequest; import envoy.event.contact.ContactSearchResult; import envoy.server.data.PersistenceManager; import envoy.server.data.User; import envoy.server.net.ConnectionManager; import envoy.server.net.ObjectWriteProxy; /** * Project: envoy-server-standalone
* File: ContactSearchProcessor.java
* Created: 08.02.2020
* * @author Kai S. K. Engelbart * @author Maximilian Käfer * @since Envoy Server Standalone v0.1-alpha */ public class ContactSearchProcessor implements ObjectProcessor { /** * Writes a list of contacts to the client containing all {@link Contact}s * matching the search phrase contained inside the request. The client and their * contacts are excluded from the result. * * @since Envoy Server Standalone v0.1-alpha */ @Override public void process(ContactSearchRequest request, long socketID, ObjectWriteProxy writeProxy) throws IOException { writeProxy.write(socketID, new ContactSearchResult(PersistenceManager.getInstance() .searchUsers(request.get(), ConnectionManager.getInstance().getUserIDBySocketID(socketID)) .stream() .map(User::toCommon) .collect(Collectors.toList()))); } @Override public Class getInputClass() { return ContactSearchRequest.class; } }