diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java index 521dad777f371c2f832b9a44a563d3a0bcceb844..8bb9bdbb00e51bba7c94dbfd8aa36cb19a028b54 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java @@ -184,14 +184,11 @@ public class OAIPMHImpl implements OAIPMHProducer { // Take IDIOM if IDIOM prefix. if (request.getMetadataPrefix().equals(TGConstants.METADATA_IDIOM_PREFIX)) { - System.out.println("IDIOM"); - recDeliv = this.recDelivIDIOM; + recDeliv = this.recDelivIDIOM; } // Finally start the QUERY! GetRecordType getRecord = new GetRecordType(); - System.out.println(request.getIdentifier()); - System.out.println(request.getMetadataPrefix()); getRecord = recDeliv.getRecordById(request.getIdentifier()); if (getRecord != null) { diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererIDIOM.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererIDIOM.java index cd00bf3705a785ce8b28a3d93505e20e6bd436e5..bca4f22a9245671188a6b61c66b8f87fffbb510d 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererIDIOM.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererIDIOM.java @@ -1,6 +1,21 @@ package info.textgrid.middleware; + +import java.io.StringReader; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; + +import org.w3c.dom.Document; +import org.xml.sax.InputSource; + import org.apache.commons.logging.LogFactory; import org.classicmayan.tools.ClassicMayanMetsMods; @@ -16,7 +31,7 @@ public class RecordDelivererIDIOM extends RecordDelivererAbstract { private String[] workFields; private String dateOfObjectCreation; private String repositoryObjectURIPrefix; - + static MetadataType metadataMets = new MetadataType(); private static org.apache.commons.logging.Log log = LogFactory.getLog(RecordDelivererDC.class); @@ -30,15 +45,15 @@ public class RecordDelivererIDIOM extends RecordDelivererAbstract { super(textgrid, dariah); } + + + /* * (non-Javadoc) * * @see info.textgrid.middleware.RecordDelivererInterface#getRecordById(java.lang.String) */ public GetRecordType getRecordById(String id) { - System.out.println("Enter idiom"); - - System.out.println("ID: " + id); GetRecordType grt = new GetRecordType(); RecordType record = new RecordType(); @@ -49,14 +64,31 @@ public class RecordDelivererIDIOM extends RecordDelivererAbstract { return grt; } - public MetadataType idiomMets() { - MetadataType metadataMets = new MetadataType(); - - ClassicMayanMetsMods metsmods = new ClassicMayanMetsMods("textgrid:2557q", - "2016-02-18T11:15:19.899+01:00", "2018-02-02T12:12:34.113+01:00"); - System.out.println(metsmods.getMets()); - // metadataMets.setAny(metsmods); - + public MetadataType idiomMets(){ + + ClassicMayanMetsMods metsmods = new ClassicMayanMetsMods("textgrid:2557q", + "2016-02-18T11:15:19.899+01:00", "2018-02-02T12:12:34.113+01:00"); + String signsToTrim = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + + "<?xml-model href=\"http://www.loc.gov/standards/mods/v3/mods-3-7.xsd\" type=\"application/xml\" schematypens=\"http://purl.oclc.org/dsdl/schematron\"?>"; + String trimmedMets = metsmods.getMets().replace(signsToTrim, ""); + System.out.println(trimmedMets); + + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + DocumentBuilder builder; + + try + { + builder = factory.newDocumentBuilder(); + Document doc = builder.parse( new InputSource( new StringReader( trimmedMets ) ) ); + metadataMets.setAny(doc.getDocumentElement()); + } catch (Exception e) { + e.printStackTrace(); + } + + + + // metadataMets.setAny(doc); + //metadataMets.setAny(value); return metadataMets; } @@ -76,7 +108,7 @@ public class RecordDelivererIDIOM extends RecordDelivererAbstract { HeaderType recordHeader = new HeaderType(); recordHeader.setIdentifier(identifier); recordHeader.setDatestamp(dateOfCreation); - // record.setMetadata(); + // record.setMetadata(metadataMets); record.setHeader(recordHeader); return record;