From f49226c10ea0f37725c7d482dec0211374a6c355 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germaine=20G=C3=B6tzelmann?= Date: Tue, 24 Jun 2025 16:35:32 +0200 Subject: [PATCH] Treat deleted-flag of wap objects with a false value like an absent flag (deleted check = false) --- .../scc/dem/wapsrv/service/AbstractWapService.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main/java/edu/kit/scc/dem/wapsrv/service/AbstractWapService.java b/src/main/java/edu/kit/scc/dem/wapsrv/service/AbstractWapService.java index c86588e..a28a407 100644 --- a/src/main/java/edu/kit/scc/dem/wapsrv/service/AbstractWapService.java +++ b/src/main/java/edu/kit/scc/dem/wapsrv/service/AbstractWapService.java @@ -7,10 +7,7 @@ import java.util.Calendar; import java.util.List; import java.util.Map; -import org.apache.commons.rdf.api.BlankNodeOrIRI; -import org.apache.commons.rdf.api.Dataset; -import org.apache.commons.rdf.api.Graph; -import org.apache.commons.rdf.api.Literal; +import org.apache.commons.rdf.api.*; import org.apache.commons.rdf.simple.Types; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -452,6 +449,14 @@ public boolean isIriDeleted(String iri) { repository.readRdfTransaction(ds -> { Graph graph = ds.getGraph(node).get(); result[0] = graph.contains(node, WapVocab.deleted, null); + if(result[0]) { + Triple deletedTriple = graph.stream(node, WapVocab.deleted, null).findFirst().orElseThrow(); + Literal falseLiteral = repository.getRdf().createLiteral("false", Types.XSD_BOOLEAN); + if(deletedTriple.getObject().equals(falseLiteral)) { + //deleted flag is present but value is set to false + result[0] = false; + } + } }); log.info("check deleted result for: '" + iri + "' is: '" + result[0] + "'"); return result[0];