From f2c4e2138ffab6de935b8f8d27c38495d4341727 Mon Sep 17 00:00:00 2001 From: Mauricio Buffon Date: Sun, 20 Oct 2024 17:57:05 +0200 Subject: [PATCH] feat: Remove DomainObjectUtils class --- .../cargotracker/domain/model/cargo/Cargo.java | 4 ++-- .../domain/model/cargo/Delivery.java | 6 +++--- .../domain/model/handling/HandlingEvent.java | 4 ++-- .../domain/shared/DomainObjectUtils.java | 18 ------------------ .../application/BookingServiceTest.java | 2 -- 5 files changed, 7 insertions(+), 27 deletions(-) delete mode 100644 src/main/java/org/eclipse/cargotracker/domain/shared/DomainObjectUtils.java diff --git a/src/main/java/org/eclipse/cargotracker/domain/model/cargo/Cargo.java b/src/main/java/org/eclipse/cargotracker/domain/model/cargo/Cargo.java index 9e924a78a..9e3e7600b 100644 --- a/src/main/java/org/eclipse/cargotracker/domain/model/cargo/Cargo.java +++ b/src/main/java/org/eclipse/cargotracker/domain/model/cargo/Cargo.java @@ -1,6 +1,7 @@ package org.eclipse.cargotracker.domain.model.cargo; import java.io.Serializable; +import java.util.Optional; import jakarta.persistence.Embedded; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; @@ -13,7 +14,6 @@ import org.eclipse.cargotracker.domain.model.handling.HandlingEvent; import org.eclipse.cargotracker.domain.model.handling.HandlingHistory; import org.eclipse.cargotracker.domain.model.location.Location; -import org.eclipse.cargotracker.domain.shared.DomainObjectUtils; /** * A Cargo. This is the central class in the domain model, and it is the root of the @@ -120,7 +120,7 @@ public Delivery getDelivery() { /** @return The itinerary. Never null. */ public Itinerary getItinerary() { - return DomainObjectUtils.nullSafe(this.itinerary, Itinerary.EMPTY_ITINERARY); + return Optional.ofNullable(this.itinerary).orElse(Itinerary.EMPTY_ITINERARY); } /** Specifies a new route for this cargo. */ diff --git a/src/main/java/org/eclipse/cargotracker/domain/model/cargo/Delivery.java b/src/main/java/org/eclipse/cargotracker/domain/model/cargo/Delivery.java index a84e63f6a..db988d63f 100644 --- a/src/main/java/org/eclipse/cargotracker/domain/model/cargo/Delivery.java +++ b/src/main/java/org/eclipse/cargotracker/domain/model/cargo/Delivery.java @@ -13,6 +13,7 @@ import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; import java.util.Iterator; +import java.util.Optional; import jakarta.persistence.Column; import jakarta.persistence.Embeddable; import jakarta.persistence.Embedded; @@ -28,7 +29,6 @@ import org.eclipse.cargotracker.domain.model.handling.HandlingHistory; import org.eclipse.cargotracker.domain.model.location.Location; import org.eclipse.cargotracker.domain.model.voyage.Voyage; -import org.eclipse.cargotracker.domain.shared.DomainObjectUtils; /** * The actual transportation of the cargo, as opposed to the customer requirement @@ -139,7 +139,7 @@ public void setTransportStatus(TransportStatus transportStatus) { } public Location getLastKnownLocation() { - return DomainObjectUtils.nullSafe(lastKnownLocation, Location.UNKNOWN); + return Optional.ofNullable(this.lastKnownLocation).orElse(Location.UNKNOWN); } public void setLastKnownLocation(Location lastKnownLocation) { @@ -151,7 +151,7 @@ public void setLastEvent(HandlingEvent lastEvent) { } public Voyage getCurrentVoyage() { - return DomainObjectUtils.nullSafe(currentVoyage, Voyage.NONE); + return Optional.ofNullable(this.currentVoyage).orElse(Voyage.NONE); } /** diff --git a/src/main/java/org/eclipse/cargotracker/domain/model/handling/HandlingEvent.java b/src/main/java/org/eclipse/cargotracker/domain/model/handling/HandlingEvent.java index 393ed0d1e..b27c4a3bd 100644 --- a/src/main/java/org/eclipse/cargotracker/domain/model/handling/HandlingEvent.java +++ b/src/main/java/org/eclipse/cargotracker/domain/model/handling/HandlingEvent.java @@ -3,6 +3,7 @@ import java.io.Serializable; import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; +import java.util.Optional; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.EnumType; @@ -21,7 +22,6 @@ import org.eclipse.cargotracker.domain.model.cargo.TrackingId; import org.eclipse.cargotracker.domain.model.location.Location; import org.eclipse.cargotracker.domain.model.voyage.Voyage; -import org.eclipse.cargotracker.domain.shared.DomainObjectUtils; /** * A HandlingEvent is used to register the event when, for instance, a cargo is unloaded from a @@ -157,7 +157,7 @@ public Type getType() { } public Voyage getVoyage() { - return DomainObjectUtils.nullSafe(this.voyage, Voyage.NONE); + return Optional.ofNullable(this.voyage).orElse(Voyage.NONE); } public LocalDateTime getCompletionTime() { diff --git a/src/main/java/org/eclipse/cargotracker/domain/shared/DomainObjectUtils.java b/src/main/java/org/eclipse/cargotracker/domain/shared/DomainObjectUtils.java deleted file mode 100644 index b0e6fd976..000000000 --- a/src/main/java/org/eclipse/cargotracker/domain/shared/DomainObjectUtils.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.eclipse.cargotracker.domain.shared; - -// TODO [Clean Code] Make this a CDI singleton? -public class DomainObjectUtils { - - /** Prevent instantiation. */ - private DomainObjectUtils() {} - - /** - * @param actual actual value - * @param safe a null-safe value - * @param type - * @return actual value, if it's not null, or safe value if the actual value is null. - */ - public static T nullSafe(T actual, T safe) { - return actual == null ? safe : actual; - } -} diff --git a/src/test/java/org/eclipse/cargotracker/application/BookingServiceTest.java b/src/test/java/org/eclipse/cargotracker/application/BookingServiceTest.java index 2fd563ee1..bd0f27436 100644 --- a/src/test/java/org/eclipse/cargotracker/application/BookingServiceTest.java +++ b/src/test/java/org/eclipse/cargotracker/application/BookingServiceTest.java @@ -44,7 +44,6 @@ import org.eclipse.cargotracker.domain.service.RoutingService; import org.eclipse.cargotracker.domain.shared.AbstractSpecification; import org.eclipse.cargotracker.domain.shared.AndSpecification; -import org.eclipse.cargotracker.domain.shared.DomainObjectUtils; import org.eclipse.cargotracker.domain.shared.NotSpecification; import org.eclipse.cargotracker.domain.shared.OrSpecification; import org.eclipse.cargotracker.domain.shared.Specification; @@ -119,7 +118,6 @@ public static WebArchive createDeployment() { .addClass(HandlingActivity.class) .addClass(RoutingStatus.class) .addClass(HandlingHistory.class) - .addClass(DomainObjectUtils.class) .addClass(CargoRepository.class) .addClass(LocationRepository.class) .addClass(VoyageRepository.class)