From 19d6b7e142ec15eed42ab837ed77b5f837fb57d0 Mon Sep 17 00:00:00 2001 From: Paul Schaub Date: Thu, 27 Apr 2023 12:44:01 +0200 Subject: [PATCH] Verification: Make use of Optional for signature mode and description --- sop-java/src/main/java/sop/Verification.java | 42 +++++++++++++------ .../assertions/VerificationAssert.java | 8 ++-- 2 files changed, 34 insertions(+), 16 deletions(-) diff --git a/sop-java/src/main/java/sop/Verification.java b/sop-java/src/main/java/sop/Verification.java index f18826e..12ed819 100644 --- a/sop-java/src/main/java/sop/Verification.java +++ b/sop-java/src/main/java/sop/Verification.java @@ -4,11 +4,12 @@ package sop; -import java.util.Date; - import sop.enums.SignatureMode; +import sop.util.Optional; import sop.util.UTCUtil; +import java.util.Date; + /** * Class bundling information about a verified signature. */ @@ -17,8 +18,8 @@ public class Verification { private final Date creationTime; private final String signingKeyFingerprint; private final String signingCertFingerprint; - private final SignatureMode signatureMode; - private final String description; + private final Optional signatureMode; + private final Optional description; private static final String MODE = "mode:"; @@ -30,7 +31,7 @@ public class Verification { * @param signingCertFingerprint fingerprint of the certificate */ public Verification(Date creationTime, String signingKeyFingerprint, String signingCertFingerprint) { - this(creationTime, signingKeyFingerprint, signingCertFingerprint, null, null); + this(creationTime, signingKeyFingerprint, signingCertFingerprint, Optional.ofEmpty(), Optional.ofEmpty()); } /** @@ -43,11 +44,28 @@ public class Verification { * @param description free-form description, e.g.
certificate from dkg.asc
(optional, may be
null
) */ public Verification(Date creationTime, String signingKeyFingerprint, String signingCertFingerprint, SignatureMode signatureMode, String description) { + this( + creationTime, + signingKeyFingerprint, + signingCertFingerprint, + Optional.ofNullable(signatureMode), + Optional.ofNullable(nullSafeTrim(description)) + ); + } + + private Verification(Date creationTime, String signingKeyFingerprint, String signingCertFingerprint, Optional signatureMode, Optional description) { this.creationTime = creationTime; this.signingKeyFingerprint = signingKeyFingerprint; this.signingCertFingerprint = signingCertFingerprint; this.signatureMode = signatureMode; - this.description = description == null ? null : description.trim(); + this.description = description; + } + + private static String nullSafeTrim(String string) { + if (string == null) { + return null; + } + return string.trim(); } public static Verification fromString(String toString) { @@ -121,7 +139,7 @@ public class Verification { * * @return signature mode */ - public SignatureMode getSignatureMode() { + public Optional getSignatureMode() { return signatureMode; } @@ -131,7 +149,7 @@ public class Verification { * * @return description */ - public String getDescription() { + public Optional getDescription() { return description; } @@ -144,12 +162,12 @@ public class Verification { .append(' ') .append(getSigningCertFingerprint()); - if (signatureMode != null) { - sb.append(' ').append(MODE).append(signatureMode); + if (signatureMode.isPresent()) { + sb.append(' ').append(MODE).append(signatureMode.get()); } - if (description != null) { - sb.append(' ').append(description); + if (description.isPresent()) { + sb.append(' ').append(description.get()); } return sb.toString(); diff --git a/sop-java/src/testFixtures/java/sop/testsuite/assertions/VerificationAssert.java b/sop-java/src/testFixtures/java/sop/testsuite/assertions/VerificationAssert.java index 35e3ed6..63fd237 100644 --- a/sop-java/src/testFixtures/java/sop/testsuite/assertions/VerificationAssert.java +++ b/sop-java/src/testFixtures/java/sop/testsuite/assertions/VerificationAssert.java @@ -45,12 +45,12 @@ public final class VerificationAssert { } public VerificationAssert hasDescription(String description) { - assertEquals(description, verification.getDescription()); + assertEquals(description, verification.getDescription().get()); return this; } public VerificationAssert hasDescriptionOrNull(String description) { - if (verification.getDescription() == null) { + if (verification.getDescription().isEmpty()) { return this; } @@ -58,12 +58,12 @@ public final class VerificationAssert { } public VerificationAssert hasMode(SignatureMode mode) { - assertEquals(mode, verification.getSignatureMode()); + assertEquals(mode, verification.getSignatureMode().get()); return this; } public VerificationAssert hasModeOrNull(SignatureMode mode) { - if (verification.getSignatureMode() == null) { + if (verification.getSignatureMode().isEmpty()) { return this; } return hasMode(mode);