Statistics
| Revision:

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

History | View | Annotate | Download (2.83 KB)

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

    
3
import java.awt.geom.Rectangle2D;
4
import java.io.File;
5

    
6
import java.util.List;
7
import java.util.Stack;
8

    
9

    
10
import org.apache.log4j.Logger;
11
import org.gvsig.remoteClient.RemoteClient;
12
import org.gvsig.remoteClient.wms.ICancellable;
13

    
14
import org.tigris.frogs.ows.impl_0_3_20.BoundingBox;
15

    
16

    
17

    
18
public class WPSClient extends RemoteClient     {
19

    
20
        @SuppressWarnings("unused")
21
        private static Logger logger = Logger.getLogger(WPSClient.class.getName());
22
        private WPSProtocolHandler handler;
23
        private Stack<String> errorsStack = new Stack<String>();
24
        
25
        public WPSClient(String host) {
26
                
27
                setHost(host);
28
                
29
                handler = WPSProtocolHandlerFactory.negotiate(getHost());
30
                handler.setHost(getHost());
31
                
32
        }
33
        
34
        @Override
35
        public void close() {
36
                // TODO Auto-generated method stub
37
                
38
        }
39

    
40
        @Override
41
        public boolean connect (boolean arg0, ICancellable arg1)
42
        { //TODO: Gestionar las excepciones.
43
                try {
44
                        if (handler == null) {
45
                                if (getHost().trim().length() > 0) {                   
46
                                        handler = WPSProtocolHandlerFactory.negotiate(getHost());
47
                                        handler.setHost(getHost());
48
                                } else {
49
                                        // must to specify host first!!!!
50
                                        return false;
51
                                }
52
                        }
53
                        
54
                        getCapabilities();
55
                        
56
                        return true;
57
                        
58
                } catch (Throwable e) {
59
                        // TODO Auto-generated catch block
60
                        e.printStackTrace();
61
                        errorsStack.add(e.getMessage());
62

    
63
                        Throwable t = e;
64
                        while( (t = t.getCause())!=null)
65
                        {
66
                                errorsStack.add(t.getClass().toString() + ": " + t.getMessage());
67
                        }
68
                } 
69
                return false;                
70
        }
71
        
72
        public Stack<String> getErrorsStack()
73
        {
74
                
75
                return errorsStack;
76
        }
77
        
78
        public boolean connect()
79
        {
80
                return connect(false, null);
81
        }
82
                
83
        /**
84
         * Obtiene la información del servidor.
85
         */
86
        public void getCapabilities() throws  Throwable {
87
                        handler.getCapabilites();
88
        }
89
                
90
        /**
91
         */
92
        public String getVersion(){
93
                return handler.getVersion();        
94
        }
95
        
96
        public String getServiceAbstract() {
97
                return handler.getServiceIdentification().getOwsAbstract();
98
        }
99

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

    
128

    
129
        public WPSProtocolHandler getWPSProtocolHandler() {
130
                return handler;
131
        }
132

    
133
        
134
}
135
                        
136