package envoy.server.processors; import java.io.IOException; import java.util.stream.Collectors; import envoy.data.Contact; import envoy.event.contact.*; import envoy.server.data.*; import envoy.server.net.*; /** * @author Kai S. K. Engelbart * @author Maximilian Käfer * @since Envoy Server Standalone v0.1-alpha */ public final class UserSearchProcessor 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(UserSearchRequest request, long socketID, ObjectWriteProxy writeProxy) throws IOException { writeProxy.write(socketID, new UserSearchResult(PersistenceManager.getInstance() .searchUsers(request.get(), ConnectionManager.getInstance().getUserIDBySocketID(socketID)) .stream() .map(User::toCommon) .collect(Collectors.toList()))); } }