From fe7e8a83dfded30e140e4e4a82dabde956a118da Mon Sep 17 00:00:00 2001 From: deiflaender Date: Tue, 13 Sep 2022 11:35:36 +0200 Subject: [PATCH 1/2] RSS-105: Added parameters to include/exclude start/stop in redactBetween rule --- .../v1/server/redaction/model/Section.java | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Section.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Section.java index 427d9dc6..c667cf1c 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Section.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Section.java @@ -534,7 +534,7 @@ public class Section { @Argument(ArgumentType.RULE_NUMBER) int ruleNumber, @Argument(ArgumentType.BOOLEAN) boolean redactEverywhere, @Argument(ArgumentType.STRING) String reason, @Argument(ArgumentType.LEGAL_BASIS) String legalBasis) { - redactBetween(start, stop, asType, ruleNumber, redactEverywhere, false, reason, legalBasis, true, false, false); + redactBetween(start, stop,false, false, asType, ruleNumber, redactEverywhere, false, reason, legalBasis, true, false, false); } @@ -545,7 +545,7 @@ public class Section { @Argument(ArgumentType.BOOLEAN) boolean excludeHeadLine, @Argument(ArgumentType.STRING) String reason, @Argument(ArgumentType.LEGAL_BASIS) String legalBasis) { - redactBetween(start, stop, asType, ruleNumber, redactEverywhere, excludeHeadLine, reason, legalBasis, true, false, false); + redactBetween(start, stop,false,false, asType, ruleNumber, redactEverywhere, excludeHeadLine, reason, legalBasis, true, false, false); } @@ -556,7 +556,18 @@ public class Section { @Argument(ArgumentType.BOOLEAN) boolean excludeHeadLine, @Argument(ArgumentType.STRING) String reason, @Argument(ArgumentType.LEGAL_BASIS) String legalBasis, @Argument(ArgumentType.BOOLEAN) boolean skipRemoveEntitiesContainedInLarger, @Argument(ArgumentType.BOOLEAN) boolean sortedResult) { - redactBetween(start, stop, asType, ruleNumber, redactEverywhere, excludeHeadLine, reason, legalBasis, true, skipRemoveEntitiesContainedInLarger, sortedResult); + redactBetween(start, stop,false, false, asType, ruleNumber, redactEverywhere, excludeHeadLine, reason, legalBasis, true, skipRemoveEntitiesContainedInLarger, sortedResult); + } + + + @ThenAction + @SuppressWarnings("unused") + public void redactBetween(@Argument(ArgumentType.STRING) String start, @Argument(ArgumentType.STRING) String stop,@Argument(ArgumentType.BOOLEAN) boolean includeStart, @Argument(ArgumentType.BOOLEAN) boolean includeStop, @Argument(ArgumentType.TYPE) String asType, + @Argument(ArgumentType.RULE_NUMBER) int ruleNumber, @Argument(ArgumentType.BOOLEAN) boolean redactEverywhere, + @Argument(ArgumentType.BOOLEAN) boolean excludeHeadLine, @Argument(ArgumentType.STRING) String reason, + @Argument(ArgumentType.LEGAL_BASIS) String legalBasis, @Argument(ArgumentType.BOOLEAN) boolean skipRemoveEntitiesContainedInLarger, @Argument(ArgumentType.BOOLEAN) boolean sortedResult) { + + redactBetween(start, stop,includeStart, includeStop, asType, ruleNumber, redactEverywhere, excludeHeadLine, reason, legalBasis, true, skipRemoveEntitiesContainedInLarger, sortedResult); } @@ -1066,7 +1077,7 @@ public class Section { } - private void redactBetween(String start, String stop, String asType, int ruleNumber, boolean redactEverywhere, boolean excludeHeadLine, String reason, String legalBasis, + private void redactBetween(String start, String stop,boolean includeStart, boolean includeStop, String asType, int ruleNumber, boolean redactEverywhere, boolean excludeHeadLine, String reason, String legalBasis, boolean redaction, boolean skipRemoveEntitiesContainedInLarger, boolean sortedResult) { String[] values = new String[1]; @@ -1089,6 +1100,14 @@ public class Section { for (String value : values) { if (StringUtils.isNotBlank(value)) { + if (!start.isEmpty() && includeStart) { + value = start + value; + } + + if(!stop.isEmpty() && includeStop){ + value = value + stop; + } + Set found = findEntities(value.trim(), asType, false, redaction, ruleNumber, reason, legalBasis, Engine.RULE, false); found.forEach(f -> { f.setSkipRemoveEntitiesContainedInLarger(skipRemoveEntitiesContainedInLarger); From b7bf84c323b1e730481dad16428db01227d3347e Mon Sep 17 00:00:00 2001 From: deiflaender Date: Tue, 13 Sep 2022 11:44:28 +0200 Subject: [PATCH 2/2] RSS-105: Fixed checkstyle error --- .../redaction/v1/server/redaction/model/Section.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Section.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Section.java index c667cf1c..469ac4ce 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Section.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Section.java @@ -1100,15 +1100,17 @@ public class Section { for (String value : values) { if (StringUtils.isNotBlank(value)) { + String searchString = value; + if (!start.isEmpty() && includeStart) { - value = start + value; + searchString = start + searchString; } if(!stop.isEmpty() && includeStop){ - value = value + stop; + searchString = searchString + stop; } - Set found = findEntities(value.trim(), asType, false, redaction, ruleNumber, reason, legalBasis, Engine.RULE, false); + Set found = findEntities(searchString.trim(), asType, false, redaction, ruleNumber, reason, legalBasis, Engine.RULE, false); found.forEach(f -> { f.setSkipRemoveEntitiesContainedInLarger(skipRemoveEntitiesContainedInLarger); if(sortedResult){ @@ -1119,7 +1121,7 @@ public class Section { EntitySearchUtils.addEntitiesWithHigherRank(entities, found, dictionary); if (redactEverywhere && !isLocal()) { - localDictionaryAdds.computeIfAbsent(asType, x -> new HashSet<>()).add(value.trim()); + localDictionaryAdds.computeIfAbsent(asType, x -> new HashSet<>()).add(searchString.trim()); } } }