package com.airlock.iam.base.api.domain.model.exception;

import java.util.function.Supplier;

public class FailureException extends RuntimeException {
   public FailureException(String message) {
      super(message);
   }

   public FailureException(String message, Throwable cause) {
      super(message, cause);
   }

   public FailureException(Throwable cause) {
      super(cause != null ? cause.getMessage() : null, cause);
   }

   public static void checkTrue(boolean condition, String errorMessage) {
      if (!condition) {
         throw new FailureException(errorMessage);
      }
   }

   public static void checkTrue(boolean condition, Supplier<String> errorMessage) {
      if (!condition) {
         throw new FailureException(errorMessage.get());
      }
   }
}
