OfficeStamperException.java
package pro.verron.officestamper.api;
import org.springframework.util.function.ThrowingFunction;
import java.util.function.Function;
import java.util.function.Supplier;
/// OfficeStamperException is a subclass of RuntimeException that represents an exception that can be thrown during the
/// processing of an Office document using the OfficeStamper library.
/// It provides additional constructors to handle different scenarios.
public class OfficeStamperException
extends RuntimeException {
/// OfficeStamperException is a subclass of RuntimeException that represents an exception that can be thrown
/// during the processing of an Office document using the OfficeStamper
/// library.
///
/// @param message a message describing the error
public OfficeStamperException(String message) {
super(message);
}
/// OfficeStamperException is a subclass of RuntimeException that represents an exception that can be thrown
/// during the processing of an Office document using the OfficeStamper
/// library.
///
/// @param cause the cause of the exception
public OfficeStamperException(Throwable cause) {
super(cause);
}
/// OfficeStamperException is a subclass of RuntimeException that represents an exception that can be thrown
/// during the processing of an Office document using the OfficeStamper
/// library.
///
/// @param message a message describing the error
/// @param cause the cause of the exception
public OfficeStamperException(String message, Throwable cause) {
super(message, cause);
}
/// OfficeStamperException is a subclass of RuntimeException
/// that represents an exception
/// that can be thrown during the processing of an Office document using the OfficeStamper
/// library.
public OfficeStamperException() {
super("Unexpected exception");
}
/// Creates a supplier that returns a new instance of [OfficeStamperException] with the specified message.
///
/// @param message the message describing the exception
/// @return a supplier that provides a new [OfficeStamperException] instance
public static Supplier<OfficeStamperException> throwing(String message) {
return () -> new OfficeStamperException(message);
}
/// Wraps a ThrowingFunction into a standard Java Function, converting any checked exceptions
/// thrown by the original function into an OfficeStamperException.
///
/// @param <T> the type of the input to the function
/// @param <U> the type of the result of the function
/// @param function the throwing function to be wrapped
/// @return a Function that wraps the specified ThrowingFunction and handles exceptions by
/// throwing an OfficeStamperException
public static <T, U> Function<T, U> throwing(ThrowingFunction<T, U> function) {
return ThrowingFunction.of(function, OfficeStamperException::new);
}
}