Class AbstractManagedPendingService.SafeOwnedService

java.lang.Object
ru.progrm_jarvis.javacommons.service.AbstractManagedPendingService.SafeOwnedService
All Implemented Interfaces:
AutoCloseable, PendingService.OwnedService<S,R>
Enclosing class:
AbstractManagedPendingService<O,S,R>

protected class AbstractManagedPendingService.SafeOwnedService extends Object implements PendingService.OwnedService<S,R>
Safe owned service guaranteeing no undefined behaviour due to illegal state.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final @NotNull AtomicBoolean
    Flag indicating whether this service can no longer be used.
    protected final O
    Owner of this service
    protected final S
    Actual owned service
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    SafeOwnedService(O owner, S service)
    Creates a new safe owned service.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
     
    protected void
    Triggers the failure due to this service being closed.
    void
    onceReady(@NonNull Consumer<R> serviceCallback)
    Specifies a callback to be called once the service's pending has ended (the service became ready).
    Service accessible until this instance gets closed.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • owner

      @NotNull protected final O owner
      Owner of this service
    • service

      protected final S service
      Actual owned service
    • closed

      @NotNull protected final @NotNull AtomicBoolean closed
      Flag indicating whether this service can no longer be used.
  • Constructor Details

    • SafeOwnedService

      protected SafeOwnedService(@NotNull O owner, S service)
      Creates a new safe owned service.
      Parameters:
      owner - owner of this service
      service - actual owned service
  • Method Details