From caa98f6bf7c7ea97cd8aea0ad27ba84d42485e87 Mon Sep 17 00:00:00 2001 From: ORybak5 <12736698+ORybak5@users.noreply.github.com> Date: Wed, 4 Feb 2026 15:21:24 +0000 Subject: [PATCH] code optimization changes --- .../nhais/configuration/CustomTrustStore.java | 8 ++++---- .../nhais/inbound/queue/ObjectSerializer.java | 8 ++++---- .../nhsconnect/nhais/mesh/http/MeshClient.java | 4 ++-- .../model/edifact/NewHealthAuthorityName.java | 4 ++-- .../edifact/PreviousHealthAuthorityName.java | 5 ++--- .../ResidentialInstituteNameAndAddress.java | 4 ++-- .../outbound/AbstractToEdifactService.java | 18 ++++++------------ .../OperationOutcomeExceptionHandler.java | 7 +++---- .../nhais/outbound/fhir/FhirParser.java | 1 - .../rest/exception/BadRequestException.java | 9 ++------- .../nhsconnect/nhais/utils/JmsReader.java | 8 ++++---- 11 files changed, 31 insertions(+), 45 deletions(-) diff --git a/src/main/java/uk/nhs/digital/nhsconnect/nhais/configuration/CustomTrustStore.java b/src/main/java/uk/nhs/digital/nhsconnect/nhais/configuration/CustomTrustStore.java index ca2b43742..f95bb0f0a 100644 --- a/src/main/java/uk/nhs/digital/nhsconnect/nhais/configuration/CustomTrustStore.java +++ b/src/main/java/uk/nhs/digital/nhsconnect/nhais/configuration/CustomTrustStore.java @@ -48,8 +48,8 @@ private X509TrustManager getDefaultTrustManager() { trustManagerFactory.init((KeyStore) null); // Using null here initialises the TMF with the default trust store. for (TrustManager tm : trustManagerFactory.getTrustManagers()) { - if (tm instanceof X509TrustManager) { - return (X509TrustManager) tm; + if (tm instanceof X509TrustManager x509TrustManager) { + return x509TrustManager; } } throw new IllegalStateException("Cannot find trust manager"); @@ -70,8 +70,8 @@ private X509TrustManager getCustomDbTrustManager(AmazonS3URI s3URI, String trust } for (TrustManager tm : trustManagerFactory.getTrustManagers()) { - if (tm instanceof X509TrustManager) { - return (X509TrustManager) tm; + if (tm instanceof X509TrustManager x509TrustManager) { + return x509TrustManager; } } throw new IllegalStateException("Cannot find trust manager"); diff --git a/src/main/java/uk/nhs/digital/nhsconnect/nhais/inbound/queue/ObjectSerializer.java b/src/main/java/uk/nhs/digital/nhsconnect/nhais/inbound/queue/ObjectSerializer.java index b631224e2..bb87b1e06 100644 --- a/src/main/java/uk/nhs/digital/nhsconnect/nhais/inbound/queue/ObjectSerializer.java +++ b/src/main/java/uk/nhs/digital/nhsconnect/nhais/inbound/queue/ObjectSerializer.java @@ -17,11 +17,11 @@ public class ObjectSerializer { @SneakyThrows public String serialize(Object object) { - if (object instanceof IBaseResource) { - return fhirParser.encodeToString((IBaseResource) object); + if (object instanceof IBaseResource iBaseResource) { + return fhirParser.encodeToString(iBaseResource); } - if (object instanceof AmendmentBody) { - return objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(object); + if (object instanceof AmendmentBody amendmentBody) { + return objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(amendmentBody); } throw new UnsupportedOperationException("Data type " + object.getClass().getSimpleName() + " is not supported"); } diff --git a/src/main/java/uk/nhs/digital/nhsconnect/nhais/mesh/http/MeshClient.java b/src/main/java/uk/nhs/digital/nhsconnect/nhais/mesh/http/MeshClient.java index e6770f5ad..12a41109c 100644 --- a/src/main/java/uk/nhs/digital/nhsconnect/nhais/mesh/http/MeshClient.java +++ b/src/main/java/uk/nhs/digital/nhsconnect/nhais/mesh/http/MeshClient.java @@ -163,8 +163,8 @@ private void logRequest(String type, HttpRequest request) { LOGGER.debug("MESH '{}' request line: {}", type, request.getRequestLine()); LOGGER.debug("MESH '{}' request headers: {}", type, request.getAllHeaders()); - if (request instanceof HttpEntityEnclosingRequest) { - var entity = ((HttpEntityEnclosingRequest) request).getEntity(); + if (request instanceof HttpEntityEnclosingRequest httpEntityEnclosingRequest) { + var entity = httpEntityEnclosingRequest.getEntity(); if (entity != null) { LOGGER.debug("MESH '{}' request content line: {}", type, entity); // request content is usually not "repeatable" so we can only decode it once. Log response content separately. diff --git a/src/main/java/uk/nhs/digital/nhsconnect/nhais/model/edifact/NewHealthAuthorityName.java b/src/main/java/uk/nhs/digital/nhsconnect/nhais/model/edifact/NewHealthAuthorityName.java index e75f7627a..bbaaa13f1 100644 --- a/src/main/java/uk/nhs/digital/nhsconnect/nhais/model/edifact/NewHealthAuthorityName.java +++ b/src/main/java/uk/nhs/digital/nhsconnect/nhais/model/edifact/NewHealthAuthorityName.java @@ -18,7 +18,7 @@ public class NewHealthAuthorityName extends Segment { public static final String QUALIFIER = "NFH"; public static final String KEY_QUALIFIER = KEY + "+" + QUALIFIER; private @NonNull String haName; - private final String code = "954"; + private static final String CODE = "954"; public static NewHealthAuthorityName fromString(String edifactString) { if (!edifactString.startsWith(NewHealthAuthorityName.KEY_QUALIFIER)) { @@ -36,7 +36,7 @@ public String getKey() { @Override public String getValue() { - return QUALIFIER + "+" + haName + ":" + code; + return QUALIFIER + "+" + haName + ":" + CODE; } @Override diff --git a/src/main/java/uk/nhs/digital/nhsconnect/nhais/model/edifact/PreviousHealthAuthorityName.java b/src/main/java/uk/nhs/digital/nhsconnect/nhais/model/edifact/PreviousHealthAuthorityName.java index e175a71d9..6004839af 100644 --- a/src/main/java/uk/nhs/digital/nhsconnect/nhais/model/edifact/PreviousHealthAuthorityName.java +++ b/src/main/java/uk/nhs/digital/nhsconnect/nhais/model/edifact/PreviousHealthAuthorityName.java @@ -17,8 +17,7 @@ public class PreviousHealthAuthorityName extends Segment { public static final String QUALIFIER = "PFH"; public static final String KEY_QUALIFIER = KEY + "+" + QUALIFIER; private @NonNull String identifier; - private final String code = "954"; - + private static final String CODE = "954"; @Override public String getKey() { @@ -27,7 +26,7 @@ public String getKey() { @Override public String getValue() { - return QUALIFIER + "+" + identifier + ":" + code; + return QUALIFIER + "+" + identifier + ":" + CODE; } @Override diff --git a/src/main/java/uk/nhs/digital/nhsconnect/nhais/model/edifact/ResidentialInstituteNameAndAddress.java b/src/main/java/uk/nhs/digital/nhsconnect/nhais/model/edifact/ResidentialInstituteNameAndAddress.java index 7c4984246..1ef619acb 100644 --- a/src/main/java/uk/nhs/digital/nhsconnect/nhais/model/edifact/ResidentialInstituteNameAndAddress.java +++ b/src/main/java/uk/nhs/digital/nhsconnect/nhais/model/edifact/ResidentialInstituteNameAndAddress.java @@ -23,7 +23,7 @@ public class ResidentialInstituteNameAndAddress extends Segment { public static final String KEY = "NAD"; public static final String QUALIFIER = "RIC"; public static final String KEY_QUALIFIER = KEY + "+" + QUALIFIER; - private final String code = "956"; + private static final String CODE = "956"; private @NonNull String identifier; @Override @@ -33,7 +33,7 @@ public String getKey() { @Override public String getValue() { - return QUALIFIER + "+" + identifier + ":" + code; + return QUALIFIER + "+" + identifier + ":" + CODE; } @Override diff --git a/src/main/java/uk/nhs/digital/nhsconnect/nhais/outbound/AbstractToEdifactService.java b/src/main/java/uk/nhs/digital/nhsconnect/nhais/outbound/AbstractToEdifactService.java index 24db44415..16ab812d6 100644 --- a/src/main/java/uk/nhs/digital/nhsconnect/nhais/outbound/AbstractToEdifactService.java +++ b/src/main/java/uk/nhs/digital/nhsconnect/nhais/outbound/AbstractToEdifactService.java @@ -127,23 +127,17 @@ protected void recordOutboundState(T translationItems) { protected void addSequenceNumbersToSegments(T translationItems) { for (Segment segment : translationItems.getSegments()) { - if (segment instanceof InterchangeHeader) { - InterchangeHeader interchangeHeader = (InterchangeHeader) segment; + if (segment instanceof InterchangeHeader interchangeHeader) { interchangeHeader.setSequenceNumber(translationItems.getSendInterchangeSequence()); - } else if (segment instanceof InterchangeTrailer) { - InterchangeTrailer interchangeTrailer = (InterchangeTrailer) segment; + } else if (segment instanceof InterchangeTrailer interchangeTrailer) { interchangeTrailer.setSequenceNumber(translationItems.getSendInterchangeSequence()); - } else if (segment instanceof MessageHeader) { - MessageHeader messageHeader = (MessageHeader) segment; + } else if (segment instanceof MessageHeader messageHeader) { messageHeader.setSequenceNumber(translationItems.getSendMessageSequence()); - } else if (segment instanceof MessageTrailer) { - MessageTrailer messageTrailer = (MessageTrailer) segment; + } else if (segment instanceof MessageTrailer messageTrailer) { messageTrailer.setSequenceNumber(translationItems.getSendMessageSequence()); - } else if (segment instanceof ReferenceTransactionNumber) { - ReferenceTransactionNumber referenceTransactionNumber = (ReferenceTransactionNumber) segment; + } else if (segment instanceof ReferenceTransactionNumber referenceTransactionNumber) { referenceTransactionNumber.setTransactionNumber(translationItems.getTransactionNumber()); - } else if (segment instanceof RegistrationMessageDateTime) { - RegistrationMessageDateTime registrationMessageDateTime = (RegistrationMessageDateTime) segment; + } else if (segment instanceof RegistrationMessageDateTime registrationMessageDateTime) { registrationMessageDateTime.setTimestamp(translationItems.getTranslationTimestamp()); } } diff --git a/src/main/java/uk/nhs/digital/nhsconnect/nhais/outbound/OperationOutcomeExceptionHandler.java b/src/main/java/uk/nhs/digital/nhsconnect/nhais/outbound/OperationOutcomeExceptionHandler.java index c774ecfb3..dd35c8513 100644 --- a/src/main/java/uk/nhs/digital/nhsconnect/nhais/outbound/OperationOutcomeExceptionHandler.java +++ b/src/main/java/uk/nhs/digital/nhsconnect/nhais/outbound/OperationOutcomeExceptionHandler.java @@ -34,10 +34,9 @@ public final ResponseEntity handleAllErrors(Exception ex, WebRequest req LOGGER.error("Creating OperationOutcome response for unhandled exception", ex); MultiValueMap headers = new LinkedMultiValueMap<>(); headers.put(HttpHeaders.CONTENT_TYPE, singletonList("application/json")); - if (ex instanceof OperationOutcomeError) { - OperationOutcomeError error = (OperationOutcomeError) ex; - String content = fhirParser.encodeToString(error.getOperationOutcome()); - return new ResponseEntity<>(content, headers, error.getStatusCode()); + if (ex instanceof OperationOutcomeError operationOutcomeError) { + String content = fhirParser.encodeToString(operationOutcomeError.getOperationOutcome()); + return new ResponseEntity<>(content, headers, operationOutcomeError.getStatusCode()); } OperationOutcome operationOutcome = OperationOutcomeUtils.createFromMessage(ex.getMessage()); String content = fhirParser.encodeToString(operationOutcome); diff --git a/src/main/java/uk/nhs/digital/nhsconnect/nhais/outbound/fhir/FhirParser.java b/src/main/java/uk/nhs/digital/nhsconnect/nhais/outbound/fhir/FhirParser.java index a02ba4b16..0bfe227bf 100644 --- a/src/main/java/uk/nhs/digital/nhsconnect/nhais/outbound/fhir/FhirParser.java +++ b/src/main/java/uk/nhs/digital/nhsconnect/nhais/outbound/fhir/FhirParser.java @@ -13,7 +13,6 @@ public class FhirParser { private final IParser parser; -// private final FhirValidator validator; /* * TODO: Consider revisiting validation if we are able to update to FHIR 5.x diff --git a/src/main/java/uk/nhs/digital/nhsconnect/nhais/rest/exception/BadRequestException.java b/src/main/java/uk/nhs/digital/nhsconnect/nhais/rest/exception/BadRequestException.java index 1fbeb2948..e9d0a16bf 100644 --- a/src/main/java/uk/nhs/digital/nhsconnect/nhais/rest/exception/BadRequestException.java +++ b/src/main/java/uk/nhs/digital/nhsconnect/nhais/rest/exception/BadRequestException.java @@ -9,17 +9,12 @@ public abstract class BadRequestException extends NhaisBaseException implements private final IBaseOperationOutcome operationOutcome; - public BadRequestException(String message) { + protected BadRequestException(String message) { super(message); operationOutcome = OperationOutcomeUtils.createFromMessage(message, getIssueType()); } - public BadRequestException(String message, Throwable cause) { - super(message, cause); - operationOutcome = OperationOutcomeUtils.createFromMessage(message, getIssueType()); - } - - public BadRequestException(Throwable cause) { + protected BadRequestException(Throwable cause) { super(cause); operationOutcome = OperationOutcomeUtils.createFromMessage(cause.getMessage(), getIssueType()); } diff --git a/src/main/java/uk/nhs/digital/nhsconnect/nhais/utils/JmsReader.java b/src/main/java/uk/nhs/digital/nhsconnect/nhais/utils/JmsReader.java index d5613c5f2..f5625f2a4 100644 --- a/src/main/java/uk/nhs/digital/nhsconnect/nhais/utils/JmsReader.java +++ b/src/main/java/uk/nhs/digital/nhsconnect/nhais/utils/JmsReader.java @@ -9,11 +9,11 @@ public class JmsReader { public static String readMessage(Message message) throws JMSException { - if (message instanceof JmsTextMessage) { - return readTextMessage((JmsTextMessage) message); + if (message instanceof JmsTextMessage jmsTextMessage) { + return readTextMessage(jmsTextMessage); } - if (message instanceof JmsBytesMessage) { - return readBytesMessage((JmsBytesMessage) message); + if (message instanceof JmsBytesMessage jmsBytesMessage) { + return readBytesMessage(jmsBytesMessage); } if (message != null) { return message.getBody(String.class);