1 /*** 2 * 3 */ 4 package pl.agh.iosr.ballamigos.webapp.jscommunication; 5 6 import java.io.IOException; 7 8 import javax.servlet.ServletConfig; 9 import javax.servlet.ServletContext; 10 import javax.servlet.ServletException; 11 import javax.servlet.http.HttpServlet; 12 import javax.servlet.http.HttpServletRequest; 13 import javax.servlet.http.HttpServletResponse; 14 15 import pl.agh.iosr.ballamigos.common.MatchProperties; 16 import pl.agh.iosr.ballamigos.common.Obstacle; 17 import pl.agh.iosr.ballamigos.webapp.core.WebApplicationCommunicator; 18 19 /*** 20 * @author wrobel 21 * Servlet that is used by client to get arena for the game she is assigned to. 22 */ 23 public class LoadArenaServlet extends HttpServlet { 24 private ServletContext context; 25 26 public void init(ServletConfig config) throws ServletException { 27 this.context = config.getServletContext(); 28 } 29 30 public void doPost(HttpServletRequest request, HttpServletResponse response) 31 throws IOException, ServletException { 32 String saved; 33 34 response.setContentType("text/xml"); 35 response.setHeader("Cache-Control", "no-cache"); 36 37 try{ 38 WebApplicationCommunicator wac = Helper.getClientCommunicator(request); 39 MatchProperties properties = wac.getMatch().getProperties(); 40 /*** 41 * format of the arena string is defined in JavaScript source code 42 */ 43 saved = "^"; 44 saved += "" + properties.getSizeX(); 45 saved += " " + properties.getSizeY(); 46 saved += " " + properties.getLeftGoalPosition().getOffsetFromCorner(); 47 saved += " " + properties.getLeftGoalPosition().getSize(); 48 saved += " " + properties.getBluePositionY(0) + " " + properties.getBluePositionX(0); 49 saved += " " + properties.getBluePositionY(1) + " " + properties.getBluePositionX(1); 50 saved += " " + properties.getBluePositionY(2) + " " + properties.getBluePositionX(2); 51 52 int nobst = properties.getObstaclesNumber(); 53 saved += " " + nobst; 54 for (int i = 0; i < nobst; ++i){ 55 Obstacle o = properties.getObstacle(i); 56 int type = o.getObstacleType(); 57 if (type == 3) 58 type = 1; 59 else if (type == 1) 60 type = 0; 61 saved += " " + type; 62 saved += " " + o.getPositionX(); 63 saved += " " + (o.getPositionX() + o.getSizeX()); 64 saved += " " + o.getPositionY(); 65 saved += " " + (o.getPositionY() + o.getSizeY()); 66 67 } 68 response.getWriter().write(saved); 69 70 }catch(Exception ex){ 71 response.getWriter().write("Excpetion: " + ex.toString()); 72 } 73 74 } 75 }