mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-07 10:04:21 +00:00
[#10744] Improve String comparison in DSpaceObjectServiceImpl
This commit is contained in:
@@ -187,11 +187,11 @@ public abstract class DSpaceObjectServiceImpl<T extends DSpaceObject> implements
|
|||||||
String authority) {
|
String authority) {
|
||||||
List<MetadataValue> metadata = getMetadata(dso, schema, element, qualifier, lang);
|
List<MetadataValue> metadata = getMetadata(dso, schema, element, qualifier, lang);
|
||||||
List<MetadataValue> result = new ArrayList<>(metadata);
|
List<MetadataValue> result = new ArrayList<>(metadata);
|
||||||
if (!authority.equals(Item.ANY)) {
|
if (!Item.ANY.equals(authority)) {
|
||||||
Iterator<MetadataValue> iterator = result.iterator();
|
Iterator<MetadataValue> iterator = result.iterator();
|
||||||
while (iterator.hasNext()) {
|
while (iterator.hasNext()) {
|
||||||
MetadataValue metadataValue = iterator.next();
|
MetadataValue metadataValue = iterator.next();
|
||||||
if (!authority.equals(metadataValue.getAuthority())) {
|
if (!StringUtils.equals(authority, metadataValue.getAuthority())) {
|
||||||
iterator.remove();
|
iterator.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -509,7 +509,7 @@ public abstract class DSpaceObjectServiceImpl<T extends DSpaceObject> implements
|
|||||||
MetadataField metadataField = metadataValue.getMetadataField();
|
MetadataField metadataField = metadataValue.getMetadataField();
|
||||||
MetadataSchema metadataSchema = metadataField.getMetadataSchema();
|
MetadataSchema metadataSchema = metadataField.getMetadataSchema();
|
||||||
// We will attempt to disprove a match - if we can't we have a match
|
// We will attempt to disprove a match - if we can't we have a match
|
||||||
if (!element.equals(Item.ANY) && !element.equals(metadataField.getElement())) {
|
if (!Item.ANY.equals(element) && !StringUtils.equals(element, metadataField.getElement())) {
|
||||||
// Elements do not match, no wildcard
|
// Elements do not match, no wildcard
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -520,9 +520,9 @@ public abstract class DSpaceObjectServiceImpl<T extends DSpaceObject> implements
|
|||||||
// Value is qualified, so no match
|
// Value is qualified, so no match
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else if (!qualifier.equals(Item.ANY)) {
|
} else if (!Item.ANY.equals(qualifier)) {
|
||||||
// Not a wildcard, so qualifier must match exactly
|
// Not a wildcard, so qualifier must match exactly
|
||||||
if (!qualifier.equals(metadataField.getQualifier())) {
|
if (!StringUtils.equals(qualifier, metadataField.getQualifier())) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -533,15 +533,15 @@ public abstract class DSpaceObjectServiceImpl<T extends DSpaceObject> implements
|
|||||||
// Value is qualified, so no match
|
// Value is qualified, so no match
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else if (!language.equals(Item.ANY)) {
|
} else if (!Item.ANY.equals(language)) {
|
||||||
// Not a wildcard, so language must match exactly
|
// Not a wildcard, so language must match exactly
|
||||||
if (!language.equals(metadataValue.getLanguage())) {
|
if (!StringUtils.equals(language, metadataValue.getLanguage())) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!schema.equals(Item.ANY)) {
|
if (!Item.ANY.equals(schema)) {
|
||||||
if (metadataSchema != null && !metadataSchema.getName().equals(schema)) {
|
if (!StringUtils.equals(schema, metadataSchema.getName())) {
|
||||||
// The namespace doesn't match
|
// The namespace doesn't match
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user