66075: Improvements from feedback:

- DspaceObjectMetadataOperation.performPatchOperation()
  > Logic split into seperate methods
- DspaceObjectMetadataOperation.replace()
  > Split into method per case
This commit is contained in:
Marie Verdonck
2019-11-13 19:01:18 +01:00
parent 57c23f3e82
commit ac57139d10
5 changed files with 386 additions and 196 deletions

View File

@@ -12,11 +12,13 @@ import java.sql.SQLException;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.Logger;
import org.dspace.authorize.AuthorizeException;
import org.dspace.authorize.service.AuthorizeService;
import org.dspace.content.dao.MetadataFieldDAO;
import org.dspace.content.service.MetadataFieldService;
import org.dspace.content.service.MetadataSchemaService;
import org.dspace.content.service.MetadataValueService;
import org.dspace.core.Context;
import org.dspace.core.LogManager;
@@ -42,6 +44,8 @@ public class MetadataFieldServiceImpl implements MetadataFieldService {
protected AuthorizeService authorizeService;
@Autowired(required = true)
protected MetadataValueService metadataValueService;
@Autowired(required = true)
protected MetadataSchemaService metadataSchemaService;
protected MetadataFieldServiceImpl() {
@@ -94,6 +98,20 @@ public class MetadataFieldServiceImpl implements MetadataFieldService {
return metadataFieldDAO.findByElement(context, metadataSchemaName, element, qualifier);
}
@Override
public MetadataField findByString(Context context, String mdString, char separator) throws SQLException {
String[] seq = StringUtils.split(mdString, separator);
String schema = seq.length > 1 ? seq[0] : null;
String element = seq.length > 1 ? seq[1] : null;
String qualifier = seq.length == 3 ? seq[2] : null;
if (schema == null || element == null) {
return null;
} else {
MetadataSchema metadataSchema = metadataSchemaService.find(context, schema);
return this.findByElement(context, metadataSchema, element, qualifier);
}
}
@Override
public List<MetadataField> findFieldsByElementNameUnqualified(Context context, String metadataSchemaName,
String element) throws SQLException {