/Prototipo/PrototipoMemoria/src/java/memoria/ws/wsTransformador.java

http://prototipomemoria.googlecode.com/ · Java · 90 lines · 46 code · 14 blank · 30 comment · 0 complexity · b111ffbdec6484ac14589a0959dae71d MD5 · raw file

  1. /*
  2. * To change this template, choose Tools | Templates
  3. * and open the template in the editor.
  4. */
  5. package memoria.ws;
  6. import com.thoughtworks.xstream.XStream;
  7. import com.thoughtworks.xstream.io.xml.DomDriver;
  8. import java.util.List;
  9. import javax.jws.WebMethod;
  10. import javax.jws.WebParam;
  11. import javax.jws.WebService;
  12. import memoria.commons.dataAccess.query.VisualQuery;
  13. import memoria.commons.dataAccess.query.filtro.RectangleFilter;
  14. import memoria.commons.structures.GeoReferenced;
  15. import memoria.commons.structures.Point;
  16. import memoria.commons.structures.coordinates.LatLonCoordinate;
  17. import memoria.dataAccess.RepositoriesManager;
  18. import memoria.dataAccess.SpatialDTO;
  19. /**
  20. *
  21. * @author diego
  22. */
  23. @WebService()
  24. public class wsTransformador {
  25. /**
  26. * Servicio que recibe la consulta en XML y retorna los resultados
  27. * en XML
  28. *
  29. * @param params. Consulta XML
  30. * @return
  31. */
  32. @WebMethod(operationName = "getData")
  33. public String getData(@WebParam(name = "params")
  34. String params) {
  35. //En este m?Štodo recibo la consulta como un xml, la desarmo con XStream
  36. //y la paso a objeto
  37. XStream xstream = new XStream(new DomDriver());
  38. try {
  39. VisualQuery query = (VisualQuery) xstream.fromXML(params);
  40. RepositoriesManager repoManager = RepositoriesManager.getInstance();
  41. List<GeoReferenced> results = repoManager.getData(query);
  42. return xstream.toXML(results);
  43. } catch (Exception e) {
  44. e.printStackTrace();
  45. }
  46. return "";
  47. }
  48. /**
  49. *
  50. * Servicio que recibe por parametro la consulta y los resultados los
  51. * retorna en XML.
  52. *
  53. *
  54. * @param capa - El nombre de la capa a consultar .Ej.:"Escuelas"
  55. * @param latSurOesteVisor - Latitud en decimal de la esquina sur-oeste del visor
  56. * @param lonSurOesteVisor - Longitud en decimal de la esquina sur-oeste del visor
  57. * @param latNorEsteVisor - Latitud en decimal de la esquina nor-este del visor
  58. * @param lonNorEsteVisor - Longitud en decimal de la esquina este-este del visor
  59. * @return
  60. */
  61. @WebMethod(operationName = "getDataFiltro")
  62. public String getDataFiltro(@WebParam(name = "capa")
  63. String capa, @WebParam(name = "latSurOesteVisor")
  64. Double latSurOesteVisor, @WebParam(name = "lonSurOesteVisor")
  65. Double lonSurOesteVisor, @WebParam(name = "latNorEsteVisor")
  66. Double latNorEsteVisor, @WebParam(name = "lonNorEsteVisor")
  67. Double lonNorEsteVisor) {
  68. Point southWest = new Point(new LatLonCoordinate(latSurOesteVisor, lonSurOesteVisor));
  69. Point norEast = new Point(new LatLonCoordinate(latNorEsteVisor, lonNorEsteVisor));
  70. RectangleFilter filtro = new RectangleFilter(southWest, norEast);
  71. RepositoriesManager repoManager = new RepositoriesManager();
  72. VisualQuery consulta = new VisualQuery(capa, filtro);
  73. XStream xstream = new XStream(new DomDriver());
  74. return xstream.toXML(repoManager.getData(consulta));
  75. }
  76. }