package org.infinispan.query.backend;
import org.hibernate.search.exception.ErrorContext;
import org.hibernate.search.exception.ErrorHandler;
/**
* Wraps another Hibernate Search {@link ErrorHandler} allowing extra processing of the backend error.
* @since 9.0
*/
public abstract class WrappingErrorHandler implements ErrorHandler {
private final ErrorHandler errorHandler;
public WrappingErrorHandler(ErrorHandler errorHandler) {
this.errorHandler = errorHandler;
}
@Override
public void handle(ErrorContext context) {
boolean handled = errorOccurred(context);
if (!handled) {
errorHandler.handle(context);
}
}
@Override
public void handleException(String errorMsg, Throwable exception) {
errorHandler.handleException(errorMsg, exception);
}
protected abstract boolean errorOccurred(ErrorContext context);
public ErrorHandler unwrap() {
return errorHandler;
}
}