Class ServiceResult<T>

java.lang.Object
com.serinity.accesscontrol.dto.ServiceResult<T>
Type Parameters:
T - the type of the optional payload

public final class ServiceResult<T> extends Object
Generic wrapper for service-layer operation results.

Encapsulates a success/failure status, a human-readable message, and an optional payload. Using this DTO instead of raw exceptions keeps controller logic clean and avoids propagating checked exceptions across layers.

ServiceResult<User> result = UserService.signIn(email, password);
if (result.isSuccess()) {
  User user = result.getData();
} else {
  System.err.println(result.getMessage());
}
Since:
2026-02-03
Version:
1.0
Author:
@ZouariOmar (zouariomar20@gmail.com)
See Also:
  • Method Details

    • success

      public static <T> ServiceResult<T> success(T data, String message)
      Creates a successful result with a payload and a message.
      Type Parameters:
      T - the payload type
      Parameters:
      data - the operation result data (may be null)
      message - a human-readable success message
      Returns:
      a successful ServiceResult
    • failure

      public static <T> ServiceResult<T> failure(String message)
      Creates a failure result with an error message and no payload.
      Type Parameters:
      T - the payload type
      Parameters:
      message - a human-readable error message
      Returns:
      a failed ServiceResult
    • isSuccess

      public boolean isSuccess()
      Returns whether the operation succeeded.
      Returns:
      true if the operation was successful
    • getMessage

      public String getMessage()
      Returns the human-readable result message.
      Returns:
      success or error message
    • getData

      public T getData()
      Returns the optional result payload.
      Returns:
      the payload, or null for failure results