PageRenderTime 26ms CodeModel.GetById 15ms app.highlight 7ms RepoModel.GetById 2ms app.codeStats 0ms

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