Statistics
| Revision:

svn-gvsig-desktop / trunk / applications / appCatalogYNomenclatorClient / src / es / gva / cit / catalogClient / srw / drivers / SRWMessages.java @ 3510

History | View | Annotate | Download (5.03 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
/*
42
* CVS MESSAGES:
43
*
44
* $Id: SRWMessages.java 3510 2005-12-22 08:31:43Z jorpiell $
45
* $Log$
46
* Revision 1.1  2005-12-22 08:31:43  jorpiell
47
* Aqui tambien se han producido muchos cambis, porque hemos acabado de cambiar la estructura del cat?logo: Se han creado todas las clases "XXXMessages", que sacan toda la parte de los mensajes de los drivers. Ademas se ha incluido en "CatalogClient" la operaci?n "getCapabilities", que libera a la interfaz de algunas operaciones que hac?a anteriormente.
48
*
49
*
50
*/ 
51

    
52

    
53
package es.gva.cit.catalogClient.srw.drivers;
54

    
55
import org.apache.commons.httpclient.NameValuePair;
56

    
57
import es.gva.cit.catalogClient.drivers.IProtocolMessages;
58
import es.gva.cit.catalogClient.protocols.SOAPProtocol;
59
import es.gva.cit.catalogClient.querys.Query;
60
import es.gva.cit.catalogClient.srw.filters.SRWFilter;
61

    
62
/**
63
 * This class create the SRW protocol messages
64
 * @author Jorge Piera Llodra (piera_jor@gva.es)
65
 */
66
public class SRWMessages implements IProtocolMessages{
67
    private SRWCatalogServiceDriver driver;  
68
    
69
    public SRWMessages(SRWCatalogServiceDriver driver){
70
        this.driver = driver;
71
    }    
72
    
73
    public NameValuePair[] getHTTPGETCapabilities(boolean upper) {
74
     NameValuePair nvp1 = new NameValuePair("OPERATION", "explain");
75
     NameValuePair nvp2 = new NameValuePair("VERSION", driver.getVersion());
76

    
77
        return new NameValuePair[] { nvp1, nvp2 };
78
    }
79

    
80
    public NameValuePair[] getHTTPGETDescribeRecords() {
81
        // TODO Auto-generated method stub
82
        return null;
83
    }
84

    
85
    public NameValuePair[] getHTTPGETRecords(Query query, int firstRecord) {
86
        SRWFilter qsrwd = new SRWFilter(query);
87

    
88
        NameValuePair nvp1 = new NameValuePair("operation", "searchRetrieve");
89
        NameValuePair nvp2 = new NameValuePair("version", driver.getVersion());
90
        NameValuePair nvp3 = new NameValuePair("query", qsrwd.getQuery(null));
91
        NameValuePair nvp4 = new NameValuePair("maximumRecords", "10");
92
        NameValuePair nvp5 = new NameValuePair("recordPacking",
93
                driver.getOutputFormat());
94
        NameValuePair nvp6 = new NameValuePair("startRecord",
95
                new String(new Integer(firstRecord).toString()));
96

    
97
        return new NameValuePair[] { nvp1, nvp2, nvp3, nvp4, nvp5, nvp6 };
98
    }
99

    
100
    public String getHTTPPOSTCapabilities() {
101
        // TODO Auto-generated method stub
102
        return null;
103
    }
104

    
105
    public String getHTTPPOSTDescribeRecords() {
106
        // TODO Auto-generated method stub
107
        return null;
108
    }
109

    
110
    public String getHTTPPOSTRecords(Query query, int firstRecord) {
111
        // TODO Auto-generated method stub
112
        return null;
113
    }
114

    
115
    public String getSOAPCapabilities() {
116
        String soapMessage =
117
            "<SRW:explainRequest xmlns:SRW=\"http://www.loc.gov/zing/srw/\">" +
118
            "<SRW:version>" + driver.getVersion() + "</SRW:version>" +
119
            "</SRW:explainRequest>";
120

    
121
        return SOAPProtocol.setSOAPMessage(soapMessage,null);
122
    }
123

    
124
    public String getSOAPDescribeRecords() {
125
        // TODO Auto-generated method stub
126
        return null;
127
    }
128

    
129
    public String getSOAPRecords(Query query, int firstRecord) {
130
        SRWFilter qsrwd = new SRWFilter(query);
131

    
132
        String soapMessage =
133
            "<srw:searchRetrieveRequest xmlns:srw=\"http://www.loc.gov/zing/srw/\">" +
134
            "<srw:query><![CDATA[" + qsrwd.getQuery(null) + "]]></srw:query>" +
135
            "<srw:sortKeys xsi:nil=\"true\"/>" + "<srw:startRecord>" +
136
            driver.getStartPosition() + "</srw:startRecord>" + "<srw:maximumRecords>" +
137
            driver.getMaxRecords() + "</srw:maximumRecords>" + "<srw:recordPacking>" +
138
            driver.getOutputFormat() + "</srw:recordPacking>" + "<srw:recordSchema>" +
139
            driver.getOutputSchema()[0] + "</srw:recordSchema>" +
140
            "<srw:resultSetTTL>" + driver.getResultSetTTL() + "</srw:resultSetTTL>" +
141
            "</srw:searchRetrieveRequest>";
142

    
143
        return SOAPProtocol.setSOAPMessage(soapMessage,null);
144
    }
145

    
146
    
147

    
148
}