- Timestamp:
- 2022-12-08T13:02:17+13:00 (18 months ago)
- 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 45 45 import org.w3c.dom.Node; 46 46 47 48 49 import java.io.StringWriter; 50 51 //import javax.xml.parsers.DocumentBuilder; 52 //import javax.xml.parsers.DocumentBuilderFactory; 53 import javax.xml.transform.OutputKeys; 54 import javax.xml.transform.Transformer; 55 import javax.xml.transform.TransformerException; 56 import javax.xml.transform.TransformerFactory; 57 import javax.xml.transform.dom.DOMSource; 58 import javax.xml.transform.stream.StreamResult; 59 60 47 61 /** a class the serve as a bridge between the Cantaloupe IIIF image server and 48 62 * Greenstone collections. Loosely based on OAIServer … … 159 173 } // end of remote_init() 160 174 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 } 161 190 162 191 public String doGetDocumentMessage(String identifier) … … 191 220 else 192 221 { 193 222 //logger.info("***** DEBUG: xml_result"); 223 //logger.info(nodeToString(xml_result)); 224 194 225 // 195 226 // 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 187 187 } 188 188 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 190 204 // **** 191 205 Element get_record_response = doc.createElement(GSXML.RESPONSE_ELEM); … … 193 207 get_record_response.appendChild(get_record); 194 208 Element record = doc.createElement(IIIFXML.RECORD); 209 195 210 //compose the header element 196 211 record.appendChild(createHeaderElement(doc, oid)); 212 197 213 //compose the metadata element 198 record.appendChild(createMetadataElement(doc, info ));214 record.appendChild(createMetadataElement(doc, info, top_level_info)); 199 215 get_record.appendChild(record); 200 216 return get_record_response; 201 217 } 202 218 203 219 204 220 /** create the metadata element used when processing GetRecord request 205 221 */ 206 222 207 protected Element createMetadataElement(Document doc, DBInfo info ) {223 protected Element createMetadataElement(Document doc, DBInfo info, DBInfo top_level_info) { 208 224 // the <metadata> element 209 225 Element metadata_message = doc.createElement(IIIFXML.METADATA); 210 226 211 addFirstMetadata(metadata_message, "assocfilepath", info);227 addFirstMetadata(metadata_message, "assocfilepath", top_level_info); 212 228 addFirstMetadata(metadata_message, "Image", info); 213 229
Note:
See TracChangeset
for help on using the changeset viewer.