From f166e8981fec9a9b298334e34a0841607f5424ad Mon Sep 17 00:00:00 2001 From: Raf Ponsaerts Date: Tue, 16 Jul 2019 09:33:19 +0200 Subject: [PATCH] Implemented the Relationship logic in the submissionforms endpoint --- .../converter/SubmissionFormConverter.java | 15 +++++++- .../rest/model/SubmissionFormFieldRest.java | 11 +++++- .../model/submit}/SelectableMetadata.java | 2 +- .../model/submit/SelectableRelationship.java | 38 +++++++++++++++++++ 4 files changed, 62 insertions(+), 4 deletions(-) rename {dspace-api/src/main/java/org/dspace/submit/model => dspace-spring-rest/src/main/java/org/dspace/app/rest/model/submit}/SelectableMetadata.java (97%) create mode 100644 dspace-spring-rest/src/main/java/org/dspace/app/rest/model/submit/SelectableRelationship.java diff --git a/dspace-spring-rest/src/main/java/org/dspace/app/rest/converter/SubmissionFormConverter.java b/dspace-spring-rest/src/main/java/org/dspace/app/rest/converter/SubmissionFormConverter.java index 2675c6a0b1..afbfc3ae74 100644 --- a/dspace-spring-rest/src/main/java/org/dspace/app/rest/converter/SubmissionFormConverter.java +++ b/dspace-spring-rest/src/main/java/org/dspace/app/rest/converter/SubmissionFormConverter.java @@ -20,12 +20,13 @@ import org.dspace.app.rest.model.SubmissionFormRest; import org.dspace.app.rest.model.SubmissionFormRowRest; import org.dspace.app.rest.model.SubmissionVisibilityRest; import org.dspace.app.rest.model.VisibilityEnum; +import org.dspace.app.rest.model.submit.SelectableMetadata; +import org.dspace.app.rest.model.submit.SelectableRelationship; import org.dspace.app.rest.repository.SubmissionFormRestRepository; import org.dspace.app.rest.utils.AuthorityUtils; import org.dspace.app.util.DCInput; import org.dspace.app.util.DCInputSet; import org.dspace.submit.model.LanguageFormField; -import org.dspace.submit.model.SelectableMetadata; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -77,7 +78,7 @@ public class SubmissionFormConverter implements DSpaceConverter selectableMetadata = new ArrayList(); - + List selectableRelationships = new ArrayList(); inputField.setLabel(dcinput.getLabel()); inputField.setHints(dcinput.getHints()); inputField.setStyle(dcinput.getStyle()); @@ -143,9 +144,19 @@ public class SubmissionFormConverter implements DSpaceConverter selectableRelationships) { + SelectableRelationship selectableRelationship = new SelectableRelationship(); + selectableRelationship.setRelationshipType(dcinput.getRelationshipType()); + selectableRelationship.setFilter(dcinput.getFilter()); + selectableRelationship.setSearchConfiguration(dcinput.getSearchConfiguration()); + selectableRelationships.add(selectableRelationship); + } + private String getPresentation(String schema, String element, String qualifier, String inputType) { String presentation = authorityUtils.getPresentation(schema, element, qualifier); if (StringUtils.isNotBlank(presentation)) { diff --git a/dspace-spring-rest/src/main/java/org/dspace/app/rest/model/SubmissionFormFieldRest.java b/dspace-spring-rest/src/main/java/org/dspace/app/rest/model/SubmissionFormFieldRest.java index a07ce52f71..afce7b69cb 100644 --- a/dspace-spring-rest/src/main/java/org/dspace/app/rest/model/SubmissionFormFieldRest.java +++ b/dspace-spring-rest/src/main/java/org/dspace/app/rest/model/SubmissionFormFieldRest.java @@ -13,8 +13,9 @@ import java.util.List; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; +import org.dspace.app.rest.model.submit.SelectableMetadata; +import org.dspace.app.rest.model.submit.SelectableRelationship; import org.dspace.submit.model.LanguageFormField; -import org.dspace.submit.model.SelectableMetadata; /** * The SubmissionFormField REST Resource. It is not addressable directly, only used @@ -70,6 +71,7 @@ public class SubmissionFormFieldRest { */ private String style; + private List selectableRelationships; /** * The list of metadata, often a single element, to offer for the storage of the information. This map the DSpace < * 7 concepts of qualdrop @@ -264,4 +266,11 @@ public class SubmissionFormFieldRest { } } + public List getSelectableRelationships() { + return selectableRelationships; + } + + public void setSelectableRelationships(List selectableRelationships) { + this.selectableRelationships = selectableRelationships; + } } diff --git a/dspace-api/src/main/java/org/dspace/submit/model/SelectableMetadata.java b/dspace-spring-rest/src/main/java/org/dspace/app/rest/model/submit/SelectableMetadata.java similarity index 97% rename from dspace-api/src/main/java/org/dspace/submit/model/SelectableMetadata.java rename to dspace-spring-rest/src/main/java/org/dspace/app/rest/model/submit/SelectableMetadata.java index 17b8fd6027..2ab3430c18 100644 --- a/dspace-api/src/main/java/org/dspace/submit/model/SelectableMetadata.java +++ b/dspace-spring-rest/src/main/java/org/dspace/app/rest/model/submit/SelectableMetadata.java @@ -5,7 +5,7 @@ * * http://www.dspace.org/license/ */ -package org.dspace.submit.model; +package org.dspace.app.rest.model.submit; /** * The SelectableMetadata REST Resource. It is not addressable directly, only diff --git a/dspace-spring-rest/src/main/java/org/dspace/app/rest/model/submit/SelectableRelationship.java b/dspace-spring-rest/src/main/java/org/dspace/app/rest/model/submit/SelectableRelationship.java new file mode 100644 index 0000000000..9bf47cd90a --- /dev/null +++ b/dspace-spring-rest/src/main/java/org/dspace/app/rest/model/submit/SelectableRelationship.java @@ -0,0 +1,38 @@ +/** + * 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.app.rest.model.submit; + +public class SelectableRelationship { + private String relationshipType; + private String filter; + private String searchConfiguration; + + public void setRelationshipType(String relationshipType) { + this.relationshipType = relationshipType; + } + + public String getRelationshipType() { + return relationshipType; + } + + public void setFilter(String filter) { + this.filter = filter; + } + + public String getFilter() { + return filter; + } + + public void setSearchConfiguration(String searchConfiguration) { + this.searchConfiguration = searchConfiguration; + } + + public String getSearchConfiguration() { + return searchConfiguration; + } +}