Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.remoteclient / src / main / java / org / gvsig / remoteclient / ogc / OGCServiceInformation.java @ 40559

History | View | Annotate | Download (5.12 KB)

1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 3
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
/* gvSIG. Geographic Information System of the Valencian Government
25
*
26
* Copyright (C) 2007-2008 Infrastructures and Transports Department
27
* of the Valencian Government (CIT)
28
* 
29
* This program is free software; you can redistribute it and/or
30
* modify it under the terms of the GNU General Public License
31
* as published by the Free Software Foundation; either version 2
32
* of the License, or (at your option) any later version.
33
* 
34
* This program is distributed in the hope that it will be useful,
35
* but WITHOUT ANY WARRANTY; without even the implied warranty of
36
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
37
* GNU General Public License for more details.
38
* 
39
* You should have received a copy of the GNU General Public License
40
* along with this program; if not, write to the Free Software
41
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
42
* MA  02110-1301, USA.
43
* 
44
*/
45

    
46
/*
47
* AUTHORS (In addition to CIT):
48
* 2009 Iver T.I.  {{Task}}
49
*/
50
 
51
package org.gvsig.remoteclient.ogc;
52

    
53
import java.util.HashMap;
54
import java.util.Hashtable;
55
import java.util.Iterator;
56

    
57

    
58

    
59
public abstract class OGCServiceInformation {
60
        public String online_resource = null;
61
        protected HashMap operationsGet = new HashMap();
62
        protected HashMap operationsPost = new HashMap();
63
        
64

    
65
        /**
66
         * @return Returns the online_resource.
67
         */
68
         public String getOnline_resource() {
69
                return online_resource;
70
        }
71

    
72
         public abstract OGCClientOperation createOperation(String name);
73
         public abstract OGCClientOperation createOperation(String name, String onlineResource);
74
        /**
75
         * Add a new supported operation
76
         * @param operation
77
         * The operation to support
78
         * @param protocol
79
         * The HTTP protocol (Get or Post)
80
         */
81
        public void addOperation(String operation, int protocol){
82
                if (protocol == OGCClientOperation.PROTOCOL_GET){
83
                        operationsGet.put(operation, createOperation(operation));                        
84
                }else if (protocol == OGCClientOperation.PROTOCOL_POST){
85
                        operationsPost.put(operation, createOperation(operation));
86
                }
87
        }
88
        
89
        /**
90
         * Add a new supported operation
91
         * @param operation
92
         * The operation to support
93
         * @param protocol
94
         * The HTTP protocol (Get or Post)
95
         * @param onlineResource
96
         * The online resource
97
         */
98
        public void addOperation(String operation, int protocol, String onlineResource){
99
                if (protocol == OGCClientOperation.PROTOCOL_GET){
100
                        operationsGet.put(operation, createOperation(operation, onlineResource));
101
                }else if (protocol == OGCClientOperation.PROTOCOL_POST){
102
                        operationsPost.put(operation, createOperation(operation, onlineResource));
103
                }
104
        }
105
        
106
        /**
107
         * Gest the online resource for a concrete operation
108
         * @param operation
109
         * The operation
110
         * @param protocol
111
         * The HTTP protocol (Get or Post)
112
         * @return
113
         * The online resource
114
         */
115
        public String getOnlineResource(String operation, int protocol){
116
                OGCClientOperation op = null;
117
                if (protocol == OGCClientOperation.PROTOCOL_GET){
118
                        op = (OGCClientOperation)operationsGet.get(operation);
119
                }else if (protocol == OGCClientOperation.PROTOCOL_POST){
120
                        op = (OGCClientOperation)operationsPost.get(operation);
121
                }
122
                if ((op == null) ||
123
                                (op.getOnlineResource() == null) || 
124
                                (op.getOnlineResource().equals(""))){
125
                        return null;
126
                }
127
                return op.getOnlineResource();
128
        }
129
        
130
        /**
131
         * Gets the online resource for a concrete operation.
132
         * The default protocol is GET
133
         * @param operation
134
         * The operation
135
         * @return
136
         * The online resource
137
         */
138
        public String getOnlineResource(String operation){
139
                return getOnlineResource(operation, OGCClientOperation.PROTOCOL_GET);
140
        }
141
        
142
        /**
143
         * Get a hash map with the supported operations
144
         * @return
145
         */
146
        public Hashtable getSupportedOperationsByName(){
147
                Hashtable operations = new Hashtable();
148
                Iterator getIt = operationsGet.keySet().iterator();
149
                while (getIt.hasNext()){
150
                        String id = (String)getIt.next();
151
                        OGCClientOperation operation = (OGCClientOperation)operationsGet.get(id);
152
                        operations.put(operation.getOperationName(),
153
                                        operation.getOnlineResource());
154
                }
155
                return operations;
156
        }
157
        
158
        public boolean isOperationSupported(String operationName){
159
            if (operationsGet.containsKey(operationName)){
160
                return true;
161
            }
162
            if (operationsPost.containsKey(operationName)){
163
            return true;
164
        }
165
            return false;
166
        }        
167
}
168