diff options
| author | Paul-Christian Volkmer | 2023-08-19 11:45:21 +0200 |
|---|---|---|
| committer | Paul-Christian Volkmer | 2023-08-19 11:45:21 +0200 |
| commit | 9921e1e684cbc236ac645d5172a2385fa69e5bbc (patch) | |
| tree | d84bf962578d605c0d793421a1bfff5016696cee | |
| parent | 5bd26b894c3cd08ce8aee75c778083e20abefee9 (diff) | |
Throw PseudonymRequestFailed exception with error message
This will throw an exception with error message describing what the error is instead of
having a more generic NoSuchElementException to be thrown if Optional.get() has no value
after calling findFirst() on an empty stream.
| -rw-r--r-- | src/main/java/dev/dnpm/etl/processor/pseudonym/GpasPseudonymGenerator.java | 15 |
1 files changed, 11 insertions, 4 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 732a770..91e465b 100644 --- a/src/main/java/dev/dnpm/etl/processor/pseudonym/GpasPseudonymGenerator.java +++ b/src/main/java/dev/dnpm/etl/processor/pseudonym/GpasPseudonymGenerator.java @@ -108,12 +108,19 @@ public class GpasPseudonymGenerator implements Generator { @NotNull public static String unwrapPseudonym(Parameters gPasPseudonymResult) { - Identifier pseudonym = (Identifier) gPasPseudonymResult.getParameter().stream().findFirst() - .get().getPart().stream().filter(a -> a.getName().equals("pseudonym")).findFirst() - .orElseGet(ParametersParameterComponent::new).getValue(); + final var parameters = gPasPseudonymResult.getParameter().stream().findFirst(); + + if (parameters.isEmpty()) { + throw new PseudonymRequestFailed("Empty HL7 parameters, cannot find first one"); + } + + final var identifier = (Identifier) parameters.get().getPart().stream() + .filter(a -> a.getName().equals("pseudonym")) + .findFirst() + .orElseGet(ParametersParameterComponent::new).getValue(); // pseudonym - return pseudonym.getSystem() + "|" + pseudonym.getValue(); + return identifier.getSystem() + "|" + identifier.getValue(); } |
