mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-07 18:14:26 +00:00
DS-3743 fix exposition of qualdropvalue
This commit is contained in:
@@ -463,5 +463,12 @@ public class DCInput
|
|||||||
public String getFieldName() {
|
public String getFieldName() {
|
||||||
return Utils.standardize(this.getSchema(), this.getElement(), this.getQualifier(), ".");
|
return Utils.standardize(this.getSchema(), this.getElement(), this.getQualifier(), ".");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isQualdropValue() {
|
||||||
|
if("qualdrop_value".equals(getInputType())) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -50,23 +50,45 @@ public class DescribeStep extends org.dspace.submit.step.DescribeStep implements
|
|||||||
try {
|
try {
|
||||||
DCInputSet inputConfig = inputReader.getInputsByFormName(config.getId());
|
DCInputSet inputConfig = inputReader.getInputsByFormName(config.getId());
|
||||||
for(DCInput input : inputConfig.getFields()) {
|
for(DCInput input : inputConfig.getFields()) {
|
||||||
List<MetadataValue> mdv = itemService.getMetadataByMetadataString(obj.getItem(), input.getFieldName());
|
|
||||||
for(MetadataValue md : mdv) {
|
List<String> fieldsName = new ArrayList<String>();
|
||||||
MetadataValueRest dto = new MetadataValueRest();
|
if(input.isQualdropValue()) {
|
||||||
dto.setAuthority(md.getAuthority());
|
for(Object qualifier : input.getPairs()) {
|
||||||
dto.setConfidence(md.getConfidence());
|
fieldsName.add(input.getFieldName()+"."+(String)qualifier);
|
||||||
dto.setLanguage(md.getLanguage());
|
|
||||||
dto.setPlace(md.getPlace());
|
|
||||||
dto.setValue(md.getValue());
|
|
||||||
|
|
||||||
String[] metadataToCheck = Utils.tokenize(md.getMetadataField().toString());
|
|
||||||
if(data.getMetadata().containsKey(Utils.standardize(metadataToCheck[0], metadataToCheck[1], metadataToCheck[2], "."))) {
|
|
||||||
data.getMetadata().get(Utils.standardize(md.getMetadataField().getMetadataSchema().getName(), md.getMetadataField().getElement(), md.getMetadataField().getQualifier(), ".")).add(dto);
|
|
||||||
}
|
}
|
||||||
else {
|
}
|
||||||
List<MetadataValueRest> listDto = new ArrayList<>();
|
else {
|
||||||
listDto.add(dto);
|
fieldsName.add(input.getFieldName());
|
||||||
data.getMetadata().put(Utils.standardize(md.getMetadataField().getMetadataSchema().getName(), md.getMetadataField().getElement(), md.getMetadataField().getQualifier(), "."), listDto);
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for (String fieldName : fieldsName) {
|
||||||
|
List<MetadataValue> mdv = itemService.getMetadataByMetadataString(obj.getItem(),
|
||||||
|
fieldName);
|
||||||
|
for (MetadataValue md : mdv) {
|
||||||
|
MetadataValueRest dto = new MetadataValueRest();
|
||||||
|
dto.setAuthority(md.getAuthority());
|
||||||
|
dto.setConfidence(md.getConfidence());
|
||||||
|
dto.setLanguage(md.getLanguage());
|
||||||
|
dto.setPlace(md.getPlace());
|
||||||
|
dto.setValue(md.getValue());
|
||||||
|
|
||||||
|
String[] metadataToCheck = Utils.tokenize(md.getMetadataField().toString());
|
||||||
|
if (data.getMetadata().containsKey(
|
||||||
|
Utils.standardize(metadataToCheck[0], metadataToCheck[1], metadataToCheck[2], "."))) {
|
||||||
|
data.getMetadata()
|
||||||
|
.get(Utils.standardize(md.getMetadataField().getMetadataSchema().getName(),
|
||||||
|
md.getMetadataField().getElement(), md.getMetadataField().getQualifier(),
|
||||||
|
"."))
|
||||||
|
.add(dto);
|
||||||
|
} else {
|
||||||
|
List<MetadataValueRest> listDto = new ArrayList<>();
|
||||||
|
listDto.add(dto);
|
||||||
|
data.getMetadata()
|
||||||
|
.put(Utils.standardize(md.getMetadataField().getMetadataSchema().getName(),
|
||||||
|
md.getMetadataField().getElement(), md.getMetadataField().getQualifier(),
|
||||||
|
"."), listDto);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user