summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjlidke2023-09-04 15:41:22 +0200
committerGitHub2023-09-04 15:41:22 +0200
commitbf8f87b261fb033088e6b4d7a6566d8b6f5aefed (patch)
treee56b5f1442fed149a8798758aa8262ef2ff38be3 /src
parent2f32834de07714df9600092173aac0cc0798e363 (diff)
fix: removed gaps system from GPAS pseudonym value. Also added clean up method, which will replace filename invalid characters witch '_'. (#11)
Diffstat (limited to 'src')
-rw-r--r--src/main/java/dev/dnpm/etl/processor/pseudonym/GpasPseudonymGenerator.java16
-rw-r--r--src/test/kotlin/dev/dnpm/etl/processor/pseudonym/PseudonymizeServiceTest.kt7
2 files changed, 22 insertions, 1 deletions
diff --git a/src/main/java/dev/dnpm/etl/processor/pseudonym/GpasPseudonymGenerator.java b/src/main/java/dev/dnpm/etl/processor/pseudonym/GpasPseudonymGenerator.java
index 7b631d8..07f16c5 100644
--- a/src/main/java/dev/dnpm/etl/processor/pseudonym/GpasPseudonymGenerator.java
+++ b/src/main/java/dev/dnpm/etl/processor/pseudonym/GpasPseudonymGenerator.java
@@ -127,7 +127,21 @@ public class GpasPseudonymGenerator implements Generator {
.orElseGet(ParametersParameterComponent::new).getValue();
// pseudonym
- return identifier.getSystem() + "|" + identifier.getValue();
+ return sanitizeValue(identifier.getValue());
+ }
+
+ /**
+ * Allow only filename friendly values
+ *
+ * @param psnValue GAPS pseudonym value
+ * @return cleaned up value
+ */
+ public static String sanitizeValue(String psnValue) {
+ // pattern to match forbidden characters
+ String forbiddenCharsRegex = "[\\\\/:*?\"<>|;]";
+
+ // Replace all forbidden characters with underscores
+ return psnValue.replaceAll(forbiddenCharsRegex, "_");
}
diff --git a/src/test/kotlin/dev/dnpm/etl/processor/pseudonym/PseudonymizeServiceTest.kt b/src/test/kotlin/dev/dnpm/etl/processor/pseudonym/PseudonymizeServiceTest.kt
index a30a328..4646ff6 100644
--- a/src/test/kotlin/dev/dnpm/etl/processor/pseudonym/PseudonymizeServiceTest.kt
+++ b/src/test/kotlin/dev/dnpm/etl/processor/pseudonym/PseudonymizeServiceTest.kt
@@ -71,6 +71,13 @@ class PseudonymizeServiceTest {
}
@Test
+ fun sanitizeFileName(@Mock generator: GpasPseudonymGenerator) {
+ val result= GpasPseudonymGenerator.sanitizeValue("l://a\\bs;1*2?3>")
+
+ assertThat(result).isEqualTo("l___a_bs_1_2_3_")
+ }
+
+ @Test
fun shouldUsePseudonymPrefixForBuiltin(@Mock generator: AnonymizingGenerator) {
doAnswer {
it.arguments[0]