ManagedReference
Managed reference objects encapsulate stand-alone references to other managed objects.
class ManagedReference
extends
ManagedObject
Independent reference to a managed object, list, map, or other managed reference. An instance of this class behaves in the same way as a managed reference property of an instance of ManagedObject
.
Constructor
<T extends ManagedObject = ManagedObject>(target?: T): ManagedReference<T>
.propagateEvents()
[1]. (f?: (this: this, e:
ManagedEvent
) => void |
ManagedEvent
|
ManagedEvent
[]): this
[2]. (...types: (ManagedEvent | (new (...args: any[]) =>
ManagedEvent
))[]): this
[1] Propagate events from referenced objects by emitting the same events on the ManagedReference
instance itself.
If a function is specified, the function can be used to transform one event to one or more others, or stop propagation if the function returns undefined. The function is called with the event itself as its only argument.
[2] Propagate events from referenced objects by emitting the same events on the ManagedReference
instance itself.
If one or more event classes are specified, only events that extend given event types are propagated.
Note: Calling this method a second time replaces the current propagation rule/function.
.restrict()
<T extends ManagedObject>(classType:
ManagedObjectConstructor
<T>): ManagedReference<T>
Ensure that referenced objects are instances of given class (or a sub class), both the current value and any new references set. Given class must be a sub class of ManagedObject
.
.get()
(): T
Returns the referenced object, or undefined if none.
.clear()
(): this
Remove the current reference, if any.
.set()
(target?: T): this
Set the current reference to given object, or managed list, map, or another reference. Equivalent to setting the target
property on this instance.
.weakRef()
(): this
Stop newly referenced objects from becoming child objects even if this ManagedReference
instance itself is held through a child reference (by a parent object); this can be used to automatically dereference objects when the parent object is destroyed.
.toJSON()
(): { $ref: number; }
Returns the referenced object itself, or undefined (alias of get()
method).
.managedId
number
Inherited from ManagedObject.managedId
.
.managedState
Inherited from ManagedObject.managedState
.
.getReferenceCount() protected
(): number
Inherited from ManagedObject.getReferenceCount
.
.getManagedReferrers() protected
():
ManagedObject
[]
Inherited from ManagedObject.getManagedReferrers
.
.getManagedParent() protected
<TParent extends ManagedObject = ManagedObject>(ParentClass?:
ManagedObjectConstructor
<TParent>): TParent
Inherited from ManagedObject.getManagedParent
.
.emit()
<TEvent extends ManagedEvent = ManagedEvent, TConstructorArgs extends any[] = any[]>(e: string | TEvent | (new (...args: TConstructorArgs) => TEvent), ...constructorArgs: TConstructorArgs): this
Inherited from ManagedObject.emit
.
.emitChange()
(name?: string): void
Inherited from ManagedObject.emitChange
.
.propagateChildEvents() protected deprecated
(...types: ((new (...args: any[]) =>
ManagedEvent
) | ((e:
ManagedEvent
) => any))[]): this
Inherited from ManagedObject.propagateChildEvents
.
.activateManagedAsync() protected
(): Promise<any>
Inherited from ManagedObject.activateManagedAsync
.
.deactivateManagedAsync() protected
(): Promise<void>
Inherited from ManagedObject.deactivateManagedAsync
.
.destroyManagedAsync() protected
(): Promise<void>
Inherited from ManagedObject.destroyManagedAsync
.
.onManagedStateActivatingAsync() protected
(): Promise<void>
Inherited from ManagedObject.onManagedStateActivatingAsync
.
.onManagedStateActiveAsync() protected
(): Promise<void>
Inherited from ManagedObject.onManagedStateActiveAsync
.
.onManagedStateDeactivatingAsync() protected
(): Promise<void>
Inherited from ManagedObject.onManagedStateDeactivatingAsync
.
.onManagedStateInactiveAsync() protected
(): Promise<void>
Inherited from ManagedObject.onManagedStateInactiveAsync
.
.onManagedStateDestroyingAsync() protected
(): Promise<void>
Inherited from ManagedObject.onManagedStateDestroyingAsync
.