Implemented the Relationship logic in the submissionforms endpoint

This commit is contained in:
Raf Ponsaerts
2019-07-16 09:33:19 +02:00
parent c1288daf19
commit f166e8981f
4 changed files with 62 additions and 4 deletions

View File

@@ -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<DCInputSet, Subm
private SubmissionFormFieldRest getField(DCInput dcinput, String formName) {
SubmissionFormFieldRest inputField = new SubmissionFormFieldRest();
List<SelectableMetadata> selectableMetadata = new ArrayList<SelectableMetadata>();
List<SelectableRelationship> selectableRelationships = new ArrayList<SelectableRelationship>();
inputField.setLabel(dcinput.getLabel());
inputField.setHints(dcinput.getHints());
inputField.setStyle(dcinput.getStyle());
@@ -143,9 +144,19 @@ public class SubmissionFormConverter implements DSpaceConverter<DCInputSet, Subm
}
inputField.setInput(inputRest);
inputField.setSelectableMetadata(selectableMetadata);
handleSelectableRelationships(dcinput, selectableRelationships);
inputField.setSelectableRelationships(selectableRelationships);
return inputField;
}
private void handleSelectableRelationships(DCInput dcinput, List<SelectableRelationship> 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)) {

View File

@@ -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<SelectableRelationship> 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<SelectableRelationship> getSelectableRelationships() {
return selectableRelationships;
}
public void setSelectableRelationships(List<SelectableRelationship> selectableRelationships) {
this.selectableRelationships = selectableRelationships;
}
}

View File

@@ -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

View File

@@ -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;
}
}