Statistics
| Revision:

svn-gvsig-desktop / tmp / trunk / cliente / WorkSpace_WPSClient / extWPSCallejero / src / es / logex / gvsig / wps / client / WPSClient.java @ 26497

History | View | Annotate | Download (2.66 KB)

1
package es.logex.gvsig.wps.client;
2

    
3
import java.awt.geom.Rectangle2D;
4
import java.io.File;
5
import java.io.IOException;
6
import java.net.ConnectException;
7
import java.util.Hashtable;
8
import java.util.List;
9
import java.util.Vector;
10

    
11
import javax.xml.bind.JAXBException;
12

    
13
import org.apache.log4j.Logger;
14
import org.gvsig.remoteClient.RemoteClient;
15
import org.gvsig.remoteClient.wms.ICancellable;
16
import org.gvsig.remoteClient.wms.WMSProtocolHandler;
17
import org.tigris.frogs.OWSException;
18
import org.tigris.frogs.ows.ServiceIdentificationType;
19
import org.tigris.frogs.ows.impl_0_3_20.BoundingBox;
20
import org.w3c.dom.Document;
21

    
22

    
23
public class WPSClient extends RemoteClient     {
24

    
25
        private static Logger logger = Logger.getLogger(WPSClient.class.getName());
26
        private WPSProtocolHandler handler;
27
        
28
        
29
        public WPSClient(String host) {
30
                
31
                setHost(host);
32
                
33
                handler = WPSProtocolHandlerFactory.negotiate(getHost());
34
                handler.setHost(getHost());
35
                
36
        }
37
        
38
        @Override
39
        public void close() {
40
                // TODO Auto-generated method stub
41
                
42
        }
43

    
44
        @Override
45
        public boolean connect (boolean arg0, ICancellable arg1)
46
        { //TODO: Gestionar las excepciones.
47
                try {
48
                        if (handler == null) {
49
                                if (getHost().trim().length() > 0) {                   
50
                                        handler = WPSProtocolHandlerFactory.negotiate(getHost());
51
                                        handler.setHost(getHost());
52
                                } else {
53
                                        // must to specify host first!!!!
54
                                        return false;
55
                                }
56
                        }
57
                        
58
                        getCapabilities();
59
                        
60
                        return true;
61
                        
62
                }   catch (Throwable e) {
63
                        e.printStackTrace();
64
                        return false;
65
                }
66
                
67
        }
68
        
69
        public boolean connect()
70
        {
71
                try {
72
                        return connect(false, null);
73
                } catch (Throwable th) {
74
                        //TODO:Guardarse el error si procede.
75
                        th.printStackTrace();
76
                        return false;
77
                }
78
                
79
        }
80
                
81
        /**
82
         * Obtiene la información del servidor.
83
         */
84
        public void getCapabilities() throws  Throwable {
85
                        handler.getCapabilites();
86
        }
87
                
88
        /**
89
         */
90
        public String getVersion(){
91
                return handler.getVersion();        
92
        }
93
        
94
        public String getServiceAbstract() {
95
                return handler.getServiceIdentification().getOwsAbstract();
96
        }
97

    
98
        public File executeProcessGetLayer(Rectangle2D extent, String srs,String layerName,
99
                        String datailLevel) {
100
                
101
                Double[] lowerCorner = {0.0, 0.0};
102
                Double[] upperCorner =  {0.0, 0.0};
103
                
104
                //TODO: Comprobación de extent == null y lanzar excepción en su caso.
105
                BoundingBox box= new BoundingBox();
106
                
107
                if (extent != null) {
108
                        lowerCorner[0] = extent.getMinX();
109
                        lowerCorner[1] = extent.getMinY();
110
                        upperCorner[0] = extent.getMaxX();
111
                        upperCorner[1] = extent.getMaxY();
112
                }
113
                
114
                box.setLowerCorner(lowerCorner);
115
                box.setUpperCorner(upperCorner);
116
                box.setCrsAttribute(srs);
117
                
118
                return handler.executeProcessGetLayer(box, layerName, datailLevel);
119
                        
120
        }
121

    
122
        
123
}
124
                        
125