+
+ private static class ForwardingEntityOwnershipService extends ForwardingObject
+ implements EntityOwnershipService, AutoCloseable {
+ private final EntityOwnershipService delegate;
+ private final AutoCloseable closeable;
+
+ public ForwardingEntityOwnershipService(EntityOwnershipService delegate, AutoCloseable closeable) {
+ this.delegate = delegate;
+ this.closeable = closeable;
+ }
+
+ @Override
+ public EntityOwnershipCandidateRegistration registerCandidate(Entity entity)
+ throws CandidateAlreadyRegisteredException {
+ return delegate().registerCandidate(entity);
+ }
+
+ @Override
+ public EntityOwnershipListenerRegistration registerListener(String entityType,
+ EntityOwnershipListener listener) {
+ return delegate().registerListener(entityType, listener);
+ }
+
+ @Override
+ public Optional<EntityOwnershipState> getOwnershipState(Entity forEntity) {
+ return delegate().getOwnershipState(forEntity);
+ }
+
+ @Override
+ public boolean isCandidateRegistered(Entity entity) {
+ return delegate().isCandidateRegistered(entity);
+ }
+
+ @Override
+ protected EntityOwnershipService delegate() {
+ return delegate;
+ }
+
+ @Override
+ public void close() throws Exception {
+ // We don't close the delegate as the life-cycle is controlled via blueprint.
+ closeable.close();
+ }
+ }