/Prototipo/Broker_v2/src/broker/geoConsulta/modulos/impl/EjecutorConsultaComponentImpl.java

http://prototipomemoria.googlecode.com/ · Java · 86 lines · 57 code · 19 blank · 10 comment · 4 complexity · fd148bbea28d31867d9ede146b4225e8 MD5 · raw file

  1. package broker.geoConsulta.modulos.impl;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import memoria.commons.dataAccess.query.UserQuery;
  5. import memoria.commons.dataAccess.query.VisualQuery;
  6. import memoria.commons.dataAccess.query.filtro.RectangleFilter;
  7. import memoria.commons.structures.AbstractGeographicElement;
  8. import memoria.commons.structures.GeoReferenced;
  9. import memoria.ws.WsTransformador;
  10. import memoria.ws.WsTransformadorService;
  11. import memoria.ws.WsTransformadorServiceLocator;
  12. import broker.geoConsulta.modulos.EjecutorConsultaComponent;
  13. import com.thoughtworks.xstream.XStream;
  14. import com.thoughtworks.xstream.io.xml.DomDriver;
  15. public class EjecutorConsultaComponentImpl implements
  16. EjecutorConsultaComponent{
  17. public String ejecutarConsulta(UserQuery query){
  18. System.out.println("Entra a EjecutorConsultaComponentImpl.ejecutarConsulta");
  19. List<GeoReferenced> resultados = new ArrayList<GeoReferenced>();
  20. XStream xstream = new XStream(new DomDriver());
  21. VisualQuery vsQuery;
  22. String respuesta = "";
  23. for(String entidad : query.getCapas()){
  24. if (query.getFiltro() == null){
  25. vsQuery = new VisualQuery(entidad);
  26. }else{
  27. vsQuery = new VisualQuery(entidad, query.getFiltro());
  28. }
  29. try {
  30. WsTransformadorService servicio = new WsTransformadorServiceLocator();
  31. WsTransformador puerto = servicio.getwsTransformadorPort();
  32. String vsQueryStr = xstream.toXML(vsQuery);
  33. //vsQueryStr= vsQueryStr.replace("\n", "");
  34. //vsQueryStr= vsQueryStr.trim();
  35. //vsQueryStr= vsQueryStr.replace("<", "&lt;");
  36. respuesta = puerto.getData(vsQueryStr);
  37. System.out.println("EjecutorConsulta realiza consulta a Transformer: " + vsQueryStr);
  38. }catch(Exception e){
  39. e.printStackTrace();
  40. }
  41. List<GeoReferenced> resultado = (List<GeoReferenced>) xstream.fromXML(respuesta);
  42. Agregar(resultados, resultado);
  43. }
  44. return xstream.toXML(resultados);
  45. }
  46. private List<GeoReferenced> Agregar(List<GeoReferenced> resultados, List<GeoReferenced> resultado){
  47. for(GeoReferenced<AbstractGeographicElement> ref : resultado)
  48. {
  49. resultados.add(ref);
  50. }
  51. return resultados;
  52. }
  53. public static void main(String[] args) {
  54. EjecutorConsultaComponentImpl cons = new EjecutorConsultaComponentImpl();
  55. RectangleFilter rf = new RectangleFilter();
  56. UserQuery uq = new UserQuery();
  57. uq.addCapa("Escuela");
  58. cons.ejecutarConsulta(uq);
  59. //System.out.println("Entra a AnalizadorConsultaComponentImp.interpretarConsulta");
  60. /*UserQuery us = new UserQuery();
  61. us.addCapa("Escuela");
  62. XStream xstream = new XStream(new DomDriver());
  63. String r = xstream.toXML(us);
  64. System.out.println(r);*/
  65. }
  66. }