diff --git a/dspace-api/src/main/java/org/dspace/submit/lookup/DSpaceWorkspaceItemOutputGenerator.java b/dspace-api/src/main/java/org/dspace/submit/lookup/DSpaceWorkspaceItemOutputGenerator.java index 9e77e6646a..1a808add05 100644 --- a/dspace-api/src/main/java/org/dspace/submit/lookup/DSpaceWorkspaceItemOutputGenerator.java +++ b/dspace-api/src/main/java/org/dspace/submit/lookup/DSpaceWorkspaceItemOutputGenerator.java @@ -133,22 +133,22 @@ public class DSpaceWorkspaceItemOutputGenerator implements OutputGenerator { || addedMetadata.contains(metadata)) { addedMetadata.add(metadata); String[] md = splitMetadata(metadata); - if (isValidMetadata(formName, md)) { - if (isRepeatableMetadata(formName, md)) { - for (Value value : itemLookup.getValues(field)) { - String[] splitValue = splitValue(value.getAsString()); - if (splitValue[3] != null) { - item.addMetadata(md[0], md[1], md[2], md[3], - splitValue[0], splitValue[1], - Integer.parseInt(splitValue[2])); - } else { - item.addMetadata(md[0], md[1], md[2], md[3], - value.getAsString()); + if (isValidMetadata(formName, md)) { //if in extra metadata or in the spefific form + List values = itemLookup.getValues(field); + if (values != null && values.size()>0){ + if (isRepeatableMetadata(formName, md)) { //if metadata is repeatable in form + for (Value value : values) { + String[] splitValue = splitValue(value.getAsString()); + if (splitValue[3] != null) { + item.addMetadata(md[0], md[1], md[2], md[3], + splitValue[0], splitValue[1], + Integer.parseInt(splitValue[2])); + } else { + item.addMetadata(md[0], md[1], md[2], md[3], + value.getAsString()); + } } - } - } else { - List values = itemLookup.getValues(field); - if (values != null && values.size()>0){ + } else { String value = values.iterator().next().getAsString(); String[] splitValue = splitValue(value); if (splitValue[3] != null) { @@ -220,6 +220,7 @@ public class DSpaceWorkspaceItemOutputGenerator implements OutputGenerator { } } + //KSTA:ToDo: Make this a modifier if (md != null && md.contains("|")) { String[] cond = md.trim().split("\\|"); for (int idx = 1; idx < cond.length; idx++) { diff --git a/dspace-api/src/main/java/org/dspace/submit/lookup/EnhancerSubmissionLookup.java b/dspace-api/src/main/java/org/dspace/submit/lookup/EnhancerSubmissionLookup.java deleted file mode 100644 index 090bced99e..0000000000 --- a/dspace-api/src/main/java/org/dspace/submit/lookup/EnhancerSubmissionLookup.java +++ /dev/null @@ -1,19 +0,0 @@ -/** - * The contents of this file are subject to the license and copyright - * detailed in the LICENSE and NOTICE files at the root of the source - * tree and available online at - * - * http://www.dspace.org/license/ - */ -package org.dspace.submit.lookup; - -import java.util.List; - -import org.dspace.submit.util.SubmissionLookupPublication; - -public interface EnhancerSubmissionLookup { - - List getValues( - SubmissionLookupPublication publication); - -} diff --git a/dspace-api/src/main/java/org/dspace/submit/lookup/MultipleSubmissionLookupDataLoader.java b/dspace-api/src/main/java/org/dspace/submit/lookup/MultipleSubmissionLookupDataLoader.java index 5ab92633ab..73ec544d2f 100644 --- a/dspace-api/src/main/java/org/dspace/submit/lookup/MultipleSubmissionLookupDataLoader.java +++ b/dspace-api/src/main/java/org/dspace/submit/lookup/MultipleSubmissionLookupDataLoader.java @@ -68,7 +68,7 @@ public class MultipleSubmissionLookupDataLoader implements DataLoader { List foundDOIs = new ArrayList(); for (Record publication : recordSet.getRecords()) { - String providerName = publication.getValues(SubmissionLookupService.PROVIDER_NAME_FIELD).get(0).getAsString(); + String providerName = SubmissionLookupService.getFirstValue(publication, SubmissionLookupService.PROVIDER_NAME_FIELD); String doi = null; diff --git a/dspace-api/src/main/java/org/dspace/submit/lookup/SubmissionLookupService.java b/dspace-api/src/main/java/org/dspace/submit/lookup/SubmissionLookupService.java index b22a51dbc3..6e4669d1e8 100644 --- a/dspace-api/src/main/java/org/dspace/submit/lookup/SubmissionLookupService.java +++ b/dspace-api/src/main/java/org/dspace/submit/lookup/SubmissionLookupService.java @@ -38,8 +38,6 @@ public class SubmissionLookupService { public static final String SEPARATOR_VALUE_REGEX = SEPARATOR_VALUE; - private Map enhancedMetadata; - private List providers; private Map> idents2provs; @@ -48,15 +46,7 @@ public class SubmissionLookupService { private TransformationEngine phase1TransformationEngine; private TransformationEngine phase2TransformationEngine; - - public void setEnhancedMetadata( - Map enhancedMetadata) { - this.enhancedMetadata = enhancedMetadata; - } - public Map getEnhancedMetadata() { - return enhancedMetadata; - } public void setPhase2TransformationEngine(TransformationEngine phase2TransformationEngine) { this.phase2TransformationEngine = phase2TransformationEngine; diff --git a/dspace-api/src/main/java/org/dspace/submit/util/ItemSubmissionLookupDTO.java b/dspace-api/src/main/java/org/dspace/submit/util/ItemSubmissionLookupDTO.java index 98c1827b56..d6e4129f6c 100644 --- a/dspace-api/src/main/java/org/dspace/submit/util/ItemSubmissionLookupDTO.java +++ b/dspace-api/src/main/java/org/dspace/submit/util/ItemSubmissionLookupDTO.java @@ -7,6 +7,7 @@ */ package org.dspace.submit.util; +import gr.ekt.bte.core.MutableRecord; import gr.ekt.bte.core.Record; import gr.ekt.bte.core.Value; @@ -62,7 +63,7 @@ public class ItemSubmissionLookupDTO implements Serializable { } else { - SubmissionLookupPublication pub = new SubmissionLookupPublication(MERGED_PUBLICATION_PROVIDER); + MutableRecord pub = new SubmissionLookupPublication(MERGED_PUBLICATION_PROVIDER); for (SubmissionLookupProvider prov : providers) { for (Record p : publications) @@ -80,7 +81,7 @@ public class ItemSubmissionLookupDTO implements Serializable { { for (Value v : values) { - pub.add(field, v.getAsString()); + pub.addValue(field, v); } } }