arbor library

Classes

ArborObserver
ArborObserver is an abstract class that defines methods for observing events related to disposable objects, lifecycle objects, and nodes.
BaseChildNode<C extends ChildNode<C, P>, P extends Node<P>>
Base implementation of a ModuleNode that is a child of another Node and is stateful.
BaseModule<C extends ModuleNode<C, P>, P extends Node<P>>
Base implementation of a ModuleNode that is a child of another Node and is stateless.
BaseTree<C extends Node<C>>
Base implementation of a stateful root Node in a tree that provides the ArborObserver.
ChildNode<C extends ChildNode<C, P>, P extends Node<P>>
ChildNode is a generic abstract class that implements the ParentedNode and manages its own state.
Disposable
Disposable is an abstract class that defines a dispose method.
HasObserver
HasObserver is an abstract class that defines an optional observer getter.
HasParent<P>
HasParent is a generic abstract class that defines a parent getter.
InstanceManager
InstanceManager is an abstract class that defines a method for creating a cached instance using a factory function. Optionally, a disposer function can be provided to dispose of the instance.
Lifecycle
Lifecycle is an abstract class that implements the Disposable interface and adds an init method.
ModuleNode<M extends ModuleNode<M, P>, P extends Node<P>>
ModuleNode is a generic abstract class that implements the ParentedNode and relies on the nearest child/tree's state.
Node<N extends Node<N>>
Node is a generic abstract class that implements the ObjectFactories, Lifecycle, HasObserver, and InstanceManager interfaces.
ObjectFactories<N extends Node<N>>
ObjectFactories is a generic abstract class that defines methods for creating instances, shared instances, child nodes, and modules.
ParentedNode<N extends ParentedNode<N, P>, P extends Node<P>>
ParentedNode is a generic abstract class that implements the Node and HasParent interface, without stating its strategy for managing state.

Typedefs

DescendantNodeFactory<N extends ParentedNode<N, P>, P extends Node<P>> = N Function(P parent)
Disposer<T> = void Function(T instance)
ObjectFactory<T> = T Function()