Changeset 6895


Ignore:
Timestamp:
01/11/16 17:12:55 (8 years ago)
Author:
Oliver Schonefeld
Message:
  • fix handling of recordXMLEscaping vs recordPacking
Location:
SRUServer/trunk/src/main/java/eu/clarin/sru/server
Files:
2 edited

Legend:

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

    r6857 r6895  
    467467                        break;
    468468                    case RECORD_PACKING:
     469                        logger.debug("XXXX: RECORD PAXCKING: {}", value);
    469470                        if (value.equals(RECORD_PACKING_PACKED)) {
    470471                            recordPacking = SRURecordPacking.PACKED;
     
    711712
    712713
    713     SRURecordXmlEscaping getRawRecordPacking() {
    714         return recordXmlEscaping;
     714    String getRawRecordXmlEscaping() {
     715        if (isVersion(SRUVersion.VERSION_2_0)) {
     716            return getParameter(PARAM_RECORD_XML_ESCAPING, true, false);
     717        } else {
     718            return getParameter(PARAM_RECORD_PACKING, true, false);
     719        }
     720    }
     721
     722
     723    String getRawRecordPacking() {
     724        if (isVersion(SRUVersion.VERSION_2_0)) {
     725            return getParameter(PARAM_RECORD_PACKING, true, false);
     726        } else {
     727            return null;
     728        }
    715729    }
    716730
     
    792806        }
    793807        final SRUVersion v = getVersion();
    794         return (min.getVersionNumber() >= v.getVersionNumber()) &&
     808        return (v.getVersionNumber() >= min.getVersionNumber()) &&
    795809                (v.getVersionNumber() <= max.getVersionNumber());
    796810    }
  • SRUServer/trunk/src/main/java/eu/clarin/sru/server/SRUServer.java

    r6825 r6895  
    478478                        out.writeEndElement(); // "recordSchema" element
    479479
    480                         // recordPacking
    481                         writeRecordPacking(out, ns, request.getRecordXmlEscaping());
     480                        /*
     481                         *  recordPacking (SRU 2.0)
     482                         *  Only serialize, of it was in request.
     483                         */
     484                        if (request.isVersion(SRUVersion.VERSION_2_0) &&
     485                                (request.getRawRecordPacking() != null)) {
     486                            writeRecordPacking(out, ns,
     487                                    request.getRecordPacking());
     488                        }
     489
     490                        /*
     491                         * recordXMLEscaping (SRU 2.0) or
     492                         *   recordPacking (SRU 1.1 and 1.2)
     493                         */
     494                        writeRecordXmlEscaping(out, ns, request);
    482495
    483496                        /*
     
    724737        out.writeEndElement(); // "recordSchema" element
    725738
    726         // recordPacking
    727         writeRecordPacking(out, ns, request.getRecordXmlEscaping());
     739        /*
     740         *  recordPacking (SRU 2.0)
     741         *  Only serialize, of it was in request.
     742         *
     743         *  XXX: not sure, if this makes sense for explain
     744         */
     745        if (request.isVersion(SRUVersion.VERSION_2_0) &&
     746                (request.getRawRecordPacking() != null)) {
     747            writeRecordPacking(out, ns, request.getRecordPacking());
     748        }
     749
     750        /*
     751         * recordXMLEscaping (SRU 2.0) or
     752         *   recordPacking (SRU 1.1 and 1.2)
     753         */
     754        writeRecordXmlEscaping(out, ns, request);
    728755
    729756        out.writeStartElement(ns.getResponseNS(), "recordData");
     
    926953        }
    927954
    928         // echoedExplainRequest/recordPacking
     955        // echoedExplainRequest/recordXmlEscpaing / recordPacking
    929956        if (request.getRawRecordPacking() != null) {
    930             writeRecordPacking(out, ns, request.getRawRecordPacking());
     957            writeRecordXmlEscaping(out, ns, request);
    931958        }
    932959
     
    10361063        }
    10371064
    1038         // echoedSearchRetrieveRequest/recordPacking
    1039         if (request.getRawRecordPacking() != null) {
    1040             writeRecordPacking(out, ns, request.getRawRecordPacking());
     1065        // (SRU 2.0) echoedSearchRetrieveRequest/recordPacking
     1066        if (request.isVersion(SRUVersion.VERSION_2_0) &&
     1067                (request.getRawRecordPacking() != null)) {
     1068            out.writeStartElement(ns.getResponseNS(), "recordPacking");
     1069            out.writeCharacters(request.getRawRecordPacking());
     1070            out.writeEndElement(); // "recordPacking" element
     1071        }
     1072
     1073        // echoedSearchRetrieveRequest/recordXmlEscaping / recordPacking
     1074        if (request.getRawRecordXmlEscaping() != null) {
     1075            if (request.isVersion(SRUVersion.VERSION_2_0)) {
     1076                out.writeStartElement(ns.getResponseNS(), "recordXMLEscaping");
     1077
     1078            } else {
     1079                out.writeStartElement(ns.getResponseNS(), "recordPacking");
     1080            }
     1081            out.writeCharacters(request.getRawRecordXmlEscaping());
     1082            out.writeEndElement(); // "recordXmlEscaping"  / "recordPacking" element
    10411083        }
    10421084
     
    11331175
    11341176
    1135     private void writeRecordPacking(SRUXMLStreamWriter out, SRUNamespaces ns,
    1136             SRURecordXmlEscaping recordPacking) throws XMLStreamException {
    1137         out.writeStartElement(ns.getResponseNS(), "recordPacking");
    1138         switch (recordPacking) {
     1177    private void writeRecordXmlEscaping(SRUXMLStreamWriter out,
     1178            SRUNamespaces ns, SRURequest request) throws XMLStreamException {
     1179        if (request.isVersion(SRUVersion.VERSION_2_0)) {
     1180            out.writeStartElement(ns.getResponseNS(), "recordXMLEscaping");
     1181        } else {
     1182            out.writeStartElement(ns.getResponseNS(), "recordPacking");
     1183        }
     1184        switch (request.getRecordXmlEscaping()) {
    11391185        case XML:
    11401186            out.writeCharacters("xml");
     
    11441190            break;
    11451191        } // switch
    1146         out.writeEndElement(); // "recordPacking" element
    1147     }
    1148 
    1149 
    1150     private void writeLocalizedStrings(XMLStreamWriter writer,
    1151             SRUNamespaces ns, String name, List<LocalizedString> list)
    1152             throws XMLStreamException {
     1192        out.writeEndElement(); // "recordXMLEscaping" / "recordPacking" element
     1193    }
     1194
     1195
     1196    private void writeRecordPacking(SRUXMLStreamWriter out, SRUNamespaces ns,
     1197            SRURecordPacking recordPacking) throws XMLStreamException {
     1198        out.writeStartElement(ns.getResponseNS(), "recordPacking");
     1199        switch (recordPacking) {
     1200        case PACKED:
     1201            out.writeCharacters("packed");
     1202            break;
     1203        case UNPACKED:
     1204            out.writeCharacters("unpacked");
     1205            break;
     1206        }
     1207        out.writeEndElement(); // (SRU 2.0) "recordPacking" element
     1208    }
     1209
     1210
     1211    private void writeLocalizedStrings(XMLStreamWriter writer, SRUNamespaces ns,
     1212            String name, List<LocalizedString> list) throws XMLStreamException {
    11531213        if ((list != null) && !list.isEmpty()) {
    11541214            for (LocalizedString item : list) {
Note: See TracChangeset for help on using the changeset viewer.