Statistics
| Revision:

svn-gvsig-desktop / trunk / applications / appCatalogYNomenclatorClient / src / es / gva / cit / catalogClient / drivers / ICatalogServiceDriver.java @ 3486

History | View | Annotate | Download (3.06 KB)

1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
*
3
* Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
4
*
5
* This program is free software; you can redistribute it and/or
6
* modify it under the terms of the GNU General Public License
7
* as published by the Free Software Foundation; either version 2
8
* of the License, or (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program; if not, write to the Free Software
17
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
*
19
* For more information, contact:
20
*
21
*  Generalitat Valenciana
22
*   Conselleria d'Infraestructures i Transport
23
*   Av. Blasco Ib??ez, 50
24
*   46010 VALENCIA
25
*   SPAIN
26
*
27
*      +34 963862235
28
*   gvsig@gva.es
29
*      www.gvsig.gva.es
30
*
31
*    or
32
*
33
*   IVER T.I. S.A
34
*   Salamanca 50
35
*   46005 Valencia
36
*   Spain
37
*
38
*   +34 963163400
39
*   dac@iver.es
40
*/
41
package es.gva.cit.catalogClient.drivers;
42

    
43
import es.gva.cit.catalogClient.metadataXML.XMLNode;
44
import es.gva.cit.catalogClient.querys.Query;
45

    
46

    
47
import java.net.URL;
48
/**
49
 * This interface has to be implemented by all the classes that implement
50
 * a catalog protocol. It describes all the common operations.
51
 * 
52
 * @author Jorge Piera Llodra (piera_jor@gva.es)
53
 */
54
public interface ICatalogServiceDriver {
55
    /**
56
     * It have to prove if the specified protocol is supported.
57
     * @param url
58
     * Server URL
59
     * @return
60
     * true if is supported, false if it isn't supported
61
     */
62
    public boolean isProtocolSupported(URL url);
63

    
64
    /**
65
     * It try to discover the server capabilities.
66
     * @param url
67
     * Server URL
68
     * @return
69
     * Node with the server answer.
70
     */
71
    public XMLNode[] getCapabilities(URL url);
72

    
73
    /**
74
     * It send a request with a query to retrieve the server records
75
     * @param url
76
     * Server URL
77
     * @param query
78
     * It contains the values to do the query (title="XXX",abstract="YYY",...)
79
     * @param firstRecord
80
     * Number of the first record to retrieve
81
     * @return
82
     * Node array with the retrieved records
83
     */
84
    public XMLNode[] getRecords(URL url, Query query, int firstRecord);
85

    
86
   /**
87
    * This method is used to update the client parameters
88
    * @param nodes
89
    * Node with the parameters to update
90
    * @param url
91
    * Server URL
92
    * @return
93
    * true if the it's possible to update the server
94
    */
95
    public boolean setParameters(XMLNode[] nodes,URL url);
96

    
97
    /**
98
     * It return a message to write in the server connection frame
99
     * @return
100
     * It is/isn't the supported protocol
101
     */
102
    public String getServerAnswerReady();
103
    
104
    /**
105
     * It returns the profile to create the query. Examples of profiles are:
106
     * ISO19115
107
     * DUBLINCORE
108
     * EBRIM
109
     * @return
110
     * String
111
     */
112
    public String getQueryProfile();
113
}