Revision 189 trunk/libraries/libWMSv0/src/com/iver/wmsclient/AbstractWMSClient.java

View differences:

AbstractWMSClient.java
21 21
 */
22 22
public class AbstractWMSClient implements WMSClient {
23 23
    private static Logger logger = Logger.getLogger(AbstractWMSClient.class.getName());
24
    public WMSVersionClient client;
24
    private WMSVersionClient client;
25
    private Capabilities cachedCapabilities;
25 26

  
26 27
    /**
27 28
     * Crea un nuevo AbstractWMSClient.
28 29
     *
29 30
     * @param c Cliente dependiente de la versi?n
31
     * @param capabilities Capabilities obtenidas con el cliente que se pasa
32
     *        como par?metro, con la finalidad de no volver a calcularlas
30 33
     */
31
    public AbstractWMSClient(WMSVersionClient c) {
34
    public AbstractWMSClient(WMSVersionClient c, Object capabilities) {
32 35
        client = c;
36
        
37
        cachedCapabilities =  new Capabilities();
38
        cachedCapabilities.setRoot(capabilities);
39
        cachedCapabilities.setVersion(c.getVersion());
33 40
    }
34 41

  
35 42
    /**
......
37 44
     */
38 45
    public Capabilities getCapabilities(URL host)
39 46
        throws UnsupportedVersionException, IllegalStateException, IOException {
40
        return client.getCapabilities(host);
47
        if (cachedCapabilities != null) {
48
            return cachedCapabilities;
49
        } else {
50
            return client.getCapabilities(host);
51
        }
41 52
    }
42 53

  
43 54
    /**
......
56 67

  
57 68
        for (int url = 0; url < mapURLs.length; url++) {
58 69
            try {
59
                queryInfo.setVersion(client.getVersion());
60

  
61 70
                URL query = new URL(mapURLs[url] + queryInfo.getQuery());
62 71
                logger.debug("Haciendo la petici?n: " + query);
63 72
                in = query.openStream();
......
170 179
    public String[] getInfoFormats() {
171 180
        return client.getInfoFormats();
172 181
    }
182

  
183
	public MapQuery createQuery() {
184
		return new MapQuery(client.getQueryHeader());
185
	}
173 186
}
187

  

Also available in: Unified diff