UpdatesServlet.java 976 B

12345678910111213141516171819202122232425262728293031
  1. package hello;
  2. import com.dslplatform.json.JsonWriter;
  3. import dsl.FrameworkBench.World;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.http.*;
  6. import java.io.IOException;
  7. import java.util.*;
  8. public class UpdatesServlet extends HttpServlet {
  9. private static final Comparator<World> ASC = (l, r) -> l.getId() - r.getId();
  10. @Override
  11. protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
  12. res.setContentType("application/json");
  13. final int count = Utils.parseBoundParam(req);
  14. final Context ctx = Utils.getContext();
  15. final JsonWriter json = Utils.getJson();
  16. final World[] worlds = ctx.loadWorldsSlow(count);
  17. final ArrayList<World> changed = new ArrayList<>(count);
  18. for (int i = 0; i < count; i++) {
  19. changed.add(worlds[i].setRandomNumber(ctx.getRandom10k()));
  20. }
  21. changed.sort(ASC);
  22. ctx.worlds.update(changed);
  23. json.serialize(worlds, count);
  24. json.toStream(res.getOutputStream());
  25. }
  26. }