org.hibernate.search.engine.environment.bean.AutoCloseableBeanHolder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hibernate-search-engine Show documentation
Show all versions of hibernate-search-engine Show documentation
Hibernate Search engine, always required
The newest version!
/*
* SPDX-License-Identifier: Apache-2.0
* Copyright Red Hat Inc. and Hibernate Authors
*/
package org.hibernate.search.engine.environment.bean;
import java.io.IOException;
import java.io.UncheckedIOException;
/**
* A bean holder that calls {@link AutoCloseable#close()} on its instance upon being {@link #close() closed}.
* @param
*/
final class AutoCloseableBeanHolder implements BeanHolder {
private final T instance;
AutoCloseableBeanHolder(T instance) {
this.instance = instance;
}
@Override
public String toString() {
return getClass().getSimpleName() + "["
+ "instance=" + instance
+ "]";
}
@Override
public T get() {
return instance;
}
@Override
public void close() {
try {
instance.close();
}
catch (IOException e) {
throw new UncheckedIOException( e.getMessage(), e );
}
catch (InterruptedException e) {
Thread.currentThread().interrupt();
throw new RuntimeException( e );
}
catch (Exception e) {
throw new RuntimeException( e );
}
}
}