Package io.deephaven.engine.liveness
Interface DelegatingLivenessNode
- All Superinterfaces:
LivenessManager,LivenessNode,LivenessReferent
- All Known Implementing Classes:
FigureWidget
Indicates that this class implements LivenessNode via a member rather than implementing it directly. The real
LivenessNode is exposed via
asLivenessNode(), all other methods delegate to this instance.-
Method Summary
Modifier and TypeMethodDescriptionReturns the "real"LivenessNodeinstance.default voidDrop a previously-retained reference to this referent.default WeakReference<? extends LivenessReferent>Get aWeakReferenceto this referent.default booleantryManage(@NotNull LivenessReferent referent) Attempt to addreferentto this manager.default booleanIf this referent is "live", behave asLivenessReferent.retainReference()and return true.default booleantryUnmanage(@NotNull LivenessReferent referent) If this node is still live and manages referent one or more times, drop one such reference.default booleantryUnmanage(@NotNull Stream<? extends LivenessReferent> referents) For each referent in referents, if this node is still live and manages referent one or more times, drop one such reference.Methods inherited from interface io.deephaven.engine.liveness.LivenessManager
manageMethods inherited from interface io.deephaven.engine.liveness.LivenessNode
unmanage, unmanageMethods inherited from interface io.deephaven.engine.liveness.LivenessReferent
getReferentDescription, retainReference
-
Method Details
-
asLivenessNode
LivenessNode asLivenessNode()Returns the "real"LivenessNodeinstance. When implementing this, care should be taken to match lifecycle of theDelegatingLivenessNodeinstance with this instance, as the returnedLivenessNodebehaves as a proxy forthis.- Returns:
- a LivenessNode to use to manage this object's liveness.
-
tryManage
Description copied from interface:LivenessManagerAttempt to addreferentto this manager. Will succeed ifreferentis live and if this manager is not aLivenessReferentor is live.- Specified by:
tryManagein interfaceLivenessManager- Parameters:
referent- The referent to add- Returns:
- Whether the referent was in fact added
-
tryUnmanage
Description copied from interface:LivenessNodeIf this node is still live and manages referent one or more times, drop one such reference.- Specified by:
tryUnmanagein interfaceLivenessNode- Parameters:
referent- The referent to drop- Returns:
- Whether this node was live and thus in fact tried to drop a reference
-
tryUnmanage
Description copied from interface:LivenessNodeFor each referent in referents, if this node is still live and manages referent one or more times, drop one such reference.- Specified by:
tryUnmanagein interfaceLivenessNode- Parameters:
referents- The referents to drop- Returns:
- Whether this node was live and thus in fact tried to drop a reference
-
tryRetainReference
default boolean tryRetainReference()Description copied from interface:LivenessReferentIf this referent is "live", behave asLivenessReferent.retainReference()and return true. Otherwise, returns false rather than throwing an exception.- Specified by:
tryRetainReferencein interfaceLivenessReferent- Returns:
- True if this referent was retained, false otherwise
-
dropReference
default void dropReference()Description copied from interface:LivenessReferentDrop a previously-retained reference to this referent.- Specified by:
dropReferencein interfaceLivenessReferent
-
getWeakReference
Description copied from interface:LivenessReferentGet aWeakReferenceto this referent. This may be cached, or newly created.- Specified by:
getWeakReferencein interfaceLivenessReferent- Returns:
- A new or cached reference to this referent
-