Ignore:
Timestamp:
11/17/15 17:14:53 (9 years ago)
Author:
Oliver Schonefeld
Message:
  • implement basic SRU 2.0 query handling ... kind of ...
File:
1 edited

Legend:

Unmodified
Added
Removed
  • SRUServer/trunk/src/main/java/eu/clarin/sru/server/SRUServer.java

    r6818 r6821  
    979979
    980980    private void writeEchoedSearchRetrieveRequest(SRUXMLStreamWriter out,
    981             SRUNamespaces ns, SRURequestImpl request, CQLNode cql)
     981            SRUNamespaces ns, SRURequestImpl request, SRUQuery<?> query)
    982982            throws XMLStreamException, SRUException {
    983983        // echoedSearchRetrieveRequest
     
    990990        }
    991991
    992         // echoedSearchRetrieveRequest/query
    993         out.writeStartElement(ns.getResponseNS(), "query");
    994         out.writeCharacters(request.getRawQuery());
    995         out.writeEndElement(); // "query"
    996 
    997         // echoedSearchRetrieveRequest/xQuery
    998         out.setDefaultNamespace(ns.getXcqlNS());
    999         out.writeStartElement(ns.getResponseNS(), "xQuery");
    1000         out.writeDefaultNamespace(ns.getXcqlNS());
    1001         out.writeXCQL(cql, true);
    1002         out.writeEndElement(); // "xQuery" element
     992        /*
     993         * XXX: unclear, if <query> should only be echoed if queryType is CQL!?
     994         */
     995        if (SRUConstants.SRU_QUERY_TYPE_CQL.equals(query.getQueryType())) {
     996            final CQLQueryParser.CQLQuery cql = (CQLQueryParser.CQLQuery) query;
     997            // echoedSearchRetrieveRequest/query
     998            out.writeStartElement(ns.getResponseNS(), "query");
     999            out.writeCharacters(cql.getRawQuery());
     1000            out.writeEndElement(); // "query"
     1001
     1002            // echoedSearchRetrieveRequest/xQuery
     1003            out.setDefaultNamespace(ns.getXcqlNS());
     1004            out.writeStartElement(ns.getResponseNS(), "xQuery");
     1005            out.writeDefaultNamespace(ns.getXcqlNS());
     1006            out.writeXCQL(cql.getParsedQuery(), true);
     1007            out.writeEndElement(); // "xQuery" element
     1008        }
    10031009
    10041010        // echoedSearchRetrieveRequest/startRecord
Note: See TracChangeset for help on using the changeset viewer.