diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererDC.java b/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererDC.java index fcf5dc7dfd5bbf1b601ca127a0c4e862a0dba1b2..ebdf264ef9d3a90db3b4ebd77a5ec6ebe8cc8774 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererDC.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererDC.java @@ -37,7 +37,7 @@ import info.textgrid.middleware.common.TextGridMimetypes; public class IdentifierListDelivererDC extends IdentifierListDelivererAbstract { private static final int lifeTimeResToken = 100; - private static final String DH_ES_DIVIDER = "."; + private static final String DH_ES_DIVIDER_REGEXP = "\\."; private static org.apache.commons.logging.Log log = LogFactory.getLog(IdentifierListDelivererDC.class); @@ -170,6 +170,7 @@ public class IdentifierListDelivererDC extends IdentifierListDelivererAbstract { System.out.println(" ## hit --> " + hit.getId()); + // Handle TextGrid. if (this.textgrid) { // hit.getSourceAsMap().get(this.dateOfObjectCreation).toString(); String datestamp = hit.getSourceAsMap().get(this.dateOfObjectCreation).toString(); @@ -184,28 +185,39 @@ public class IdentifierListDelivererDC extends IdentifierListDelivererAbstract { lit = setListIdentifierHeader(datestamp, identifier, lit, set); } - if (this.dariah) { + // Handle DARIAH. + else if (this.dariah) { System.out.println(" ## dateOfObjectCreation --> " + this.dateOfObjectCreation); // Get date field. - if (this.dateOfObjectCreation.contains(DH_ES_DIVIDER)) { + if (this.dateOfObjectCreation.contains(DH_ES_DIVIDER_REGEXP)) { // Divide date object. - String dateOfObjectCreationDivider[] = this.dateOfObjectCreation.split(DH_ES_DIVIDER); + String dateOfObjectCreationEntries[] = + this.dateOfObjectCreation.split(DH_ES_DIVIDER_REGEXP); + + System.out.println(" ## divider --> " + DH_ES_DIVIDER_REGEXP); + System.out.println(" ## length of dOOCD --> " + dateOfObjectCreationEntries.length); + System.out.println(" ## dOOCD --> " + dateOfObjectCreationEntries); - System.out.println(" ## divider --> " + DH_ES_DIVIDER); - System.out.println(" ## length of dOOCD --> " + dateOfObjectCreationDivider.length); - System.out.println(" ## dOOCD --> " + dateOfObjectCreationDivider); + if (dateOfObjectCreationEntries.length != 2) { + String prefix = dateOfObjectCreationEntries[0]; + String suffix = dateOfObjectCreationEntries[1]; - String prefix = dateOfObjectCreationDivider[0]; - String suffix = dateOfObjectCreationDivider[1]; + if (hit.getSourceAsMap().containsKey(prefix)) { - if (hit.getSourceAsMap().containsKey(prefix)) { + System.out.println(" ## argl --> " + hit.getSourceAsMap().get(prefix)); - System.out.println(" ## argl --> " + hit.getSourceAsMap().get(prefix)); + System.out.println(" ## prefix class name --> " + + hit.getSourceAsMap().get(prefix).getClass().getName()); - // this.datestamp = + // this.datestamp = + } + + } else { + // FIXME Go to ERROR state! } + } else { this.datestamp = hit.getSourceAsMap().get(this.dateOfObjectCreation).toString(); }