Ignore:
Timestamp:
2022-12-08T13:02:17+13:00 (18 months ago)
Author:
davidb
Message:

Changes in response to testing out the retrieval of a document sub-section image

Location:
gs3-extensions/iiif-servlet/trunk/src/gsdl-src/java/org/greenstone/gsdl3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • gs3-extensions/iiif-servlet/trunk/src/gsdl-src/java/org/greenstone/gsdl3/IIIFServerBridge.java

    r32891 r36996  
    4545import org.w3c.dom.Node;
    4646
     47
     48
     49import java.io.StringWriter;
     50
     51//import javax.xml.parsers.DocumentBuilder;
     52//import javax.xml.parsers.DocumentBuilderFactory;
     53import javax.xml.transform.OutputKeys;
     54import javax.xml.transform.Transformer;
     55import javax.xml.transform.TransformerException;
     56import javax.xml.transform.TransformerFactory;
     57import javax.xml.transform.dom.DOMSource;
     58import javax.xml.transform.stream.StreamResult;
     59
     60
    4761/** a class the serve as a bridge between the Cantaloupe IIIF image server and
    4862 * Greenstone collections.  Loosely based on OAIServer
     
    159173    } // end of remote_init()
    160174
     175    // Based on:
     176    // https://stackoverflow.com/questions/4412848/xml-node-to-string-in-java
     177
     178    private static String nodeToString(Node node) {
     179    StringWriter sw = new StringWriter();
     180    try {
     181        Transformer t = TransformerFactory.newInstance().newTransformer();
     182        t.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
     183        t.setOutputProperty(OutputKeys.INDENT, "yes");
     184        t.transform(new DOMSource(node), new StreamResult(sw));
     185    } catch (TransformerException te) {
     186        System.out.println("nodeToString Transformer Exception");
     187    }
     188    return sw.toString();
     189    }
    161190
    162191        public String doGetDocumentMessage(String identifier)
     
    191220        else
    192221        {
    193 
     222            //logger.info("***** DEBUG: xml_result");           
     223            //logger.info(nodeToString(xml_result));
     224             
    194225            //
    195226            // All response elements are in the form (with a corresponding verb
  • gs3-extensions/iiif-servlet/trunk/src/gsdl-src/java/org/greenstone/gsdl3/service/IIIFPMH.java

    r32883 r36996  
    187187    }
    188188
    189 
     189    DBInfo top_level_info = null;
     190
     191    int subsection_dot = oid.indexOf(".");
     192   
     193    if (subsection_dot > 0) {
     194    // OID specifies document sub-section
     195    // => Need to work out the top-level OID, as this is needed to retrieve assocfilepath
     196    String root_oid = oid.substring(0,subsection_dot);
     197    top_level_info = this.coll_db.getInfo(root_oid);
     198    }
     199    else {
     200    top_level_info = info;
     201    }
     202   
     203   
    190204    // ****
    191205    Element get_record_response = doc.createElement(GSXML.RESPONSE_ELEM);
     
    193207    get_record_response.appendChild(get_record);
    194208    Element record = doc.createElement(IIIFXML.RECORD);
     209
    195210    //compose the header element
    196211    record.appendChild(createHeaderElement(doc, oid));     
     212
    197213    //compose the metadata element
    198     record.appendChild(createMetadataElement(doc, info));
     214    record.appendChild(createMetadataElement(doc, info, top_level_info));
    199215    get_record.appendChild(record);
    200216    return get_record_response;
    201217  }
    202 
     218   
    203219   
    204220 /** create the metadata element used when processing GetRecord request
    205221   */
    206222
    207   protected Element createMetadataElement(Document doc, DBInfo info) {
     223  protected Element createMetadataElement(Document doc, DBInfo info, DBInfo top_level_info) {
    208224    // the <metadata> element
    209225    Element metadata_message = doc.createElement(IIIFXML.METADATA);
    210226
    211     addFirstMetadata(metadata_message, "assocfilepath", info);
     227    addFirstMetadata(metadata_message, "assocfilepath", top_level_info);
    212228    addFirstMetadata(metadata_message, "Image", info);
    213229   
Note: See TracChangeset for help on using the changeset viewer.