From 8bea6bc890b0779d7231f83be6572737eb98ccb2 Mon Sep 17 00:00:00 2001 From: Kilian Schuettler Date: Thu, 24 Aug 2023 15:50:05 +0200 Subject: [PATCH] change method name EntitiyCreationService.byEntities to mergeEntitiesOfSameType --- .../services/EntityCreationService.java | 24 +++++++++++++++++-- .../resources/drools/acceptance_rules.drl | 2 +- .../src/test/resources/drools/all_rules.drl | 2 +- .../src/test/resources/drools/rules.drl | 3 ++- .../src/test/resources/drools/rules_v2.drl | 2 +- .../EFSA_sanitisation_GFL_v1/rules.drl | 2 +- 6 files changed, 28 insertions(+), 7 deletions(-) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/services/EntityCreationService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/services/EntityCreationService.java index d4b4b2a1..115f51ea 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/services/EntityCreationService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/services/EntityCreationService.java @@ -255,7 +255,6 @@ public class EntityCreationService { } - public Stream lineAfterStringsIgnoreCase(List strings, String type, EntityType entityType, SemanticNode node) { TextBlock textBlock = node.getTextBlock(); @@ -547,7 +546,7 @@ public class EntityCreationService { } - public RedactionEntity byEntities(List entitiesToMerge, String type, EntityType entityType, SemanticNode node) { + public RedactionEntity mergeEntitiesOfSameType(List entitiesToMerge, String type, EntityType entityType, SemanticNode node) { if (!allEntitiesIntersectAndHaveSameTypes(entitiesToMerge)) { throw new IllegalArgumentException("Provided entities can not be merged, since they do not intersect or are not the same type!" + entitiesToMerge); @@ -574,6 +573,27 @@ public class EntityCreationService { } + public Stream byEntities(List entities, String type, EntityType entityType, SemanticNode node) { + + return entities.stream().map(entity -> byEntity(type, entityType, node, entity)); + } + + + private RedactionEntity byEntity(String type, EntityType entityType, SemanticNode node, RedactionEntity entity) { + + RedactionEntity newEntity = RedactionEntity.initialEntityNode(entity.getBoundary(), type, entityType); + newEntity.addEngines(entity.getEngines()); + newEntity.addMatchedRules(entity.getMatchedRuleList()); + newEntity.setDictionaryEntry(entity.isDictionaryEntry()); + newEntity.setDossierDictionaryEntry(entity.isDossierDictionaryEntry()); + newEntity.setIgnored(entity.isIgnored()); + newEntity.setRemoved(entity.isRemoved()); + addEntityToGraph(newEntity, node); + insertToKieSession(newEntity); + return newEntity; + } + + private void insertToKieSession(RedactionEntity mergedEntity) { if (kieSession != null) { diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/acceptance_rules.drl b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/acceptance_rules.drl index 940df8b6..5fecf596 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/acceptance_rules.drl +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/acceptance_rules.drl @@ -579,7 +579,7 @@ rule "X.1.0: merge intersecting Entities of same type" $first: RedactionEntity($type: type, $entityType: entityType, !resized, !skipRemoveEntitiesContainedInLarger, isActive()) $second: RedactionEntity(intersects($first), type == $type, entityType == $entityType, this != $first, !resized, !skipRemoveEntitiesContainedInLarger, isActive()) then - RedactionEntity mergedEntity = entityCreationService.byEntities(List.of($first, $second), $type, $entityType, document); + RedactionEntity mergedEntity = entityCreationService.mergeEntitiesOfSameType(List.of($first, $second), $type, $entityType, document); $first.remove("X.1.0", "merge intersecting Entities of same type"); $second.remove("X.1.0", "merge intersecting Entities of same type"); retract($first); diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/all_rules.drl b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/all_rules.drl index 5976c581..74b1c7f3 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/all_rules.drl +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/all_rules.drl @@ -1276,7 +1276,7 @@ rule "X.1.0: merge intersecting Entities of same type" $first: RedactionEntity($type: type, $entityType: entityType, !resized, !skipRemoveEntitiesContainedInLarger, isActive()) $second: RedactionEntity(intersects($first), type == $type, entityType == $entityType, this != $first, !resized, !skipRemoveEntitiesContainedInLarger, isActive()) then - RedactionEntity mergedEntity = entityCreationService.byEntities(List.of($first, $second), $type, $entityType, document); + RedactionEntity mergedEntity = entityCreationService.mergeEntitiesOfSameType(List.of($first, $second), $type, $entityType, document); $first.remove("X.1.0", "merge intersecting Entities of same type"); $second.remove("X.1.0", "merge intersecting Entities of same type"); retract($first); diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules.drl b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules.drl index 5f5e5da0..04c90499 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules.drl +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules.drl @@ -797,6 +797,7 @@ rule "ETC.5.0: Ignore dossier_redaction entries if confidentiality is not 'confi $dossierRedaction: RedactionEntity(type == "dossier_redaction") then $dossierRedaction.ignore("ETC.5.0", "Ignore dossier redactions, when not confidential"); + update($dossierRedaction); $dossierRedaction.getIntersectingNodes().forEach(node -> update(node)); end @@ -989,7 +990,7 @@ rule "X.1.0: merge intersecting Entities of same type" $first: RedactionEntity($type: type, $entityType: entityType, !resized, !skipRemoveEntitiesContainedInLarger, isActive()) $second: RedactionEntity(intersects($first), type == $type, entityType == $entityType, this != $first, !resized, !skipRemoveEntitiesContainedInLarger, isActive()) then - RedactionEntity mergedEntity = entityCreationService.byEntities(List.of($first, $second), $type, $entityType, document); + RedactionEntity mergedEntity = entityCreationService.mergeEntitiesOfSameType(List.of($first, $second), $type, $entityType, document); $first.remove("X.1.0", "merge intersecting Entities of same type"); $second.remove("X.1.0", "merge intersecting Entities of same type"); retract($first); diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules_v2.drl b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules_v2.drl index 62f1085b..453f5caf 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules_v2.drl +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules_v2.drl @@ -111,7 +111,7 @@ rule "X.1.0: merge intersecting Entities of same type" $first: RedactionEntity($type: type, $entityType: entityType, !resized, !skipRemoveEntitiesContainedInLarger, isActive()) $second: RedactionEntity(intersects($first), type == $type, entityType == $entityType, this != $first, !resized, !skipRemoveEntitiesContainedInLarger, isActive()) then - RedactionEntity mergedEntity = entityCreationService.byEntities(List.of($first, $second), $type, $entityType, document); + RedactionEntity mergedEntity = entityCreationService.mergeEntitiesOfSameType(List.of($first, $second), $type, $entityType, document); $first.remove("X.1.0", "merge intersecting Entities of same type"); $second.remove("X.1.0", "merge intersecting Entities of same type"); retract($first); diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/performance/dictionaries/EFSA_sanitisation_GFL_v1/rules.drl b/redaction-service-v1/redaction-service-server-v1/src/test/resources/performance/dictionaries/EFSA_sanitisation_GFL_v1/rules.drl index 58c30a48..d37e477a 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/performance/dictionaries/EFSA_sanitisation_GFL_v1/rules.drl +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/performance/dictionaries/EFSA_sanitisation_GFL_v1/rules.drl @@ -582,7 +582,7 @@ rule "X.1.0: merge intersecting Entities of same type" $first: RedactionEntity($type: type, $entityType: entityType, !resized, !skipRemoveEntitiesContainedInLarger, isActive()) $second: RedactionEntity(intersects($first), type == $type, entityType == $entityType, this != $first, !resized, !skipRemoveEntitiesContainedInLarger, isActive()) then - RedactionEntity mergedEntity = entityCreationService.byEntities(List.of($first, $second), $type, $entityType, document); + RedactionEntity mergedEntity = entityCreationService.mergeEntitiesOfSameType(List.of($first, $second), $type, $entityType, document); $first.remove("X.1.0", "merge intersecting Entities of same type"); $second.remove("X.1.0", "merge intersecting Entities of same type"); retract($first); -- 2.47.2