Skip to content

Commit 3480a4b

Browse files
committed
Support both String and List values in conditionTypeMetadataValue #3587
1 parent 861734d commit 3480a4b

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

roda-core/roda-core/src/main/java/org/roda/core/plugins/base/disposal/rules/ApplyDisposalRulesPluginUtils.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
package org.roda.core.plugins.base.disposal.rules;
99

1010
import java.util.Collections;
11+
import java.util.List;
1112
import java.util.Map;
1213
import java.util.Optional;
1314

@@ -68,9 +69,16 @@ private static Optional<DisposalRule> conditionTypeMetadataValue(AIP aip, Dispos
6869

6970
Map<String, Object> fields = indexedAIP.getFields();
7071
Object o = fields.get(rule.getConditionKey());
71-
String metadataValue = (String) o;
7272

73-
if (metadataValue != null && metadataValue.equals(rule.getConditionValue())) {
73+
boolean match = false;
74+
75+
if (o instanceof String s) {
76+
match = s.equals(rule.getConditionValue());
77+
} else if (o instanceof List<?> list && !list.isEmpty()) {
78+
match = list.contains(rule.getConditionValue());
79+
}
80+
81+
if (match) {
7482
DisposalAIPMetadata disposal = getDisposalAipMetadata(aip, rule);
7583
aip.setDisposal(disposal);
7684
return Optional.of(rule);

0 commit comments

Comments
 (0)