Statistics
| Revision:

svn-gvsig-desktop / trunk / libraries / libWMSv0 / src / com / iver / wmsclient / WMSClient.java @ 189

History | View | Annotate | Download (4.95 KB)

1
package com.iver.wmsclient;
2

    
3
import org.exolab.castor.xml.ValidationException;
4

    
5
import java.awt.geom.Rectangle2D;
6

    
7
import java.io.IOException;
8

    
9
import java.net.URL;
10

    
11

    
12
/**
13
 * Interfaz con los m?todos que necesitamos de un cliente WMS. Se pueden a?adir
14
 * m?s m?todos en funci?n de las necesidades que vayan surgiendo
15
 *
16
 * @author Fernando Gonz?lez Cort?s
17
 */
18
public interface WMSClient {
19
    /**
20
     * Realiza la negociaci?n de la versi?n con el servidor WMS, se guarda toda
21
     * la informaci?n obtenida de la petici?n GetCapabilities si la
22
     * negociaci?n es exitosa y lanza una UnsupportedVersionException en caso
23
     * contrario.
24
     *
25
     * @param host DOCUMENT ME!
26
     *
27
     * @return Objeto Capabilities. El objeto devuelto tendr? root a null si no
28
     *         se pudo leer la respuesta completamente. Tendr? root a null y
29
     *         version a null si no se pudo leer la version de la respuesta
30
     *
31
     * @throws UnsupportedVersionException Si el servidor no soporta ninguna de
32
     *         las versiones que soporta el cliente
33
     * @throws IllegalStateException Si se intenta invocar el m?todo y no ha
34
     *         sido establecido previamente  el par?metros host
35
     * @throws IOException si se produce un error en la comunicaci?n con el
36
     *         servidor
37
     */
38
    public Capabilities getCapabilities(URL host)
39
        throws UnsupportedVersionException, IllegalStateException, IOException;
40

    
41
    /**
42
     * Realiza una peticion GetMap y devuelve los bytes del fichero retornado
43
     * por el servidor
44
     *
45
     * @param queryInfo Objeto que contiene la informaci?n necesaria para
46
     *        realizar la peticion. El campo version de este objeto no viene
47
     *        definido y ha de ser establecido por las distintas
48
     *        implementaciones antes de invocar a cualquier otro m?todo del
49
     *        objeto
50
     *
51
     * @return array de bytes del fichero retornado. Si el servidor responde
52
     *         con una excepcion WMS que el cliente entiende, se lanza una
53
     *         WMSException con el mensaje de error contenido. Si se lanza una
54
     *         excepci?n que no se entiende se devuelve tal cual. Por tanto es
55
     *         posible que si no salta la excepci?n se devuelva c?digo que no
56
     *         es una respuesta correcta de informaci?n correcto
57
     *
58
     * @throws WMSException Si el servidor WMS devuelve un error propio del
59
     *         protocolo
60
     * @throws IOException Si se produce un error de comunicaci?n con el
61
     *         servidor
62
     * @throws NoSuchFieldException Si no se ha establecido uno de los campos
63
     *         obligatorios de las peticiones GetMap
64
     * @throws ValidationException Si no se entiende la respuesta del servidor
65
     */
66
    public byte[] doMapQuery(MapQuery queryInfo)
67
        throws WMSException, IOException, NoSuchFieldException, 
68
            ValidationException;
69

    
70
    /**
71
     * Crea un MapQuery con los datos de la versi?n correspondientes
72
     * a la versi?n del cliente. Deber? de ser esta mapQuery la
73
     * que se pase como par?metro a doMapQuery
74
     *
75
     * @return DOCUMENT ME!
76
     */
77
    public MapQuery createQuery();
78

    
79
    /**
80
     * Obtiene la version como un string x.y.z
81
     *
82
     * @return N?mero de la versi?n
83
     */
84
    public String getVersion();
85

    
86
    /**
87
     * Obtiene el bounding box de una capa para el SRS  solicitado
88
     *
89
     * @param t Array con los names de las capas desde la raiz hasta aquella de
90
     *        la cual se quiere obtener su bounding box
91
     * @param srs SRS para la que se quiere el bounding box
92
     *
93
     * @return Bounding box de la capa, o null si no se puede encontrar dicho
94
     *         boundingbox
95
     */
96
    public Rectangle2D getBoundingBox(String[] t, String srs);
97

    
98
    /**
99
     * Realiza una petici?n feature info y devuelve un array de bytes con la
100
     * respuesta
101
     *
102
     * @param query Objeto query con la informaci?n de la peticion. El objeto
103
     *        MapQuery que hay dentro de este objeto debe ser el mismo (o
104
     *        contener la misma informaci?n) que  el que se us? para obtener
105
     *        el mapa sobre el cual se est? haciendo la query
106
     *
107
     * @return bytes devueltos del servidor
108
     *
109
     * @throws WMSException Si el servidor WMS devuelve un error propio del
110
     *         protocolo
111
     * @throws IOException Si se produce un error de comunicaci?n con el
112
     *         servidor
113
     * @throws NoSuchFieldException Si no se ha establecido uno de los campos
114
     *         obligatorios de las peticiones GetFeatureInfo
115
     * @throws ValidationException Si no se entiende la respuesta del servidor
116
     */
117
    public byte[] doFeatureInfo(FeatureInfoQuery query)
118
        throws WMSException, IOException, NoSuchFieldException, 
119
            ValidationException;
120

    
121
    /**
122
     * Obtiene los formatos en los que se le puede pedir  informaci?n al
123
     * servidor
124
     *
125
     * @return array de strings con los nombres de los formatos que se pueden
126
     *         pedir al servidor
127
     */
128
    public String[] getInfoFormats();
129
}