Package com.complexible.common.base
Class AbstractAutoDisposable
- java.lang.Object
-
- com.complexible.common.base.AbstractAutoDisposable
-
- All Implemented Interfaces:
AutoDisposable
,Disposable
public abstract class AbstractAutoDisposable extends java.lang.Object implements AutoDisposable
- Author:
- Evren Sirin
-
-
Constructor Summary
Constructors Constructor Description AbstractAutoDisposable()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T extends AutoDisposable>
Tacquire()
Acquires a reference to this object preventing it from being automatically disposed until the reference is released.int
getRefCount()
Returns the current reference count.void
release()
Releases one of these object's references.<T extends AutoDisposable>
TtryAcquire()
Tries to acquire a reference to this object.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.complexible.common.base.Disposable
dispose
-
-
-
-
Method Detail
-
acquire
public <T extends AutoDisposable> T acquire()
Description copied from interface:AutoDisposable
Acquires a reference to this object preventing it from being automatically disposed until the reference is released.- Specified by:
acquire
in interfaceAutoDisposable
- Returns:
- this object
-
tryAcquire
public <T extends AutoDisposable> T tryAcquire()
Description copied from interface:AutoDisposable
Tries to acquire a reference to this object. Returns the reference if the number of references to the object is greater than zero at the time of the call. If not, it's possible that the object has already been disposed sonull
is returned instead. Note: this method should be used after the object has beenacquired
for the first time. Before that it always returnsnull
. The common use case is that the firstAutoDisposable.acquire()
happens before the object is published and becomes visible to users.- Specified by:
tryAcquire
in interfaceAutoDisposable
- Type Parameters:
T
- object type- Returns:
- this object
-
release
public void release()
Description copied from interface:AutoDisposable
Releases one of these object's references. If the number of references reaches to or goes below0
, this object will bedisposed
. So calling this function without any precedingAutoDisposable.acquire()
calls will cause the dispose function to be called multiple times.- Specified by:
release
in interfaceAutoDisposable
-
getRefCount
public int getRefCount()
Returns the current reference count.- Specified by:
getRefCount
in interfaceAutoDisposable
-
-