Class MutableAbstract

Base class for all types that are mutable using Mutator-objects, thus providing and using interfaces created at runtime.

Mutables provide a Mutator built by collecting all their applicable enumerable properties. By default, this includes only primitive types and nested mutable objects. Using the type-decorator can also include non-mutable objects, which will be displayed via their toString method in the editor.

Subclasses can either reduce the standard Mutator built by this base class by deleting properties or implement an individual getMutator method. The provided properties of the Mutator must match public properties or getters/setters of the object. Otherwise, they will be ignored unless handled by an override of the mutate method in the subclass, and will throw errors in an automatically generated user interface for the object.

Hierarchy (view full)

Constructors

Accessors

Methods

  • Collect applicable attributes of the instance and copies of their values in a Mutator-object. By default, a mutator cannot be extended, since extensions are not available in the object the mutator belongs to. A mutator may be reduced by the descendants of Mutable to contain only the properties needed.

    Parameters

    • _extendable: boolean = false

    Returns Mutator

  • Updates the attribute values of the instance according to the state of the mutator. The mutation may be restricted to a subset of the mutator and the event dispatching suppressed. Uses mutateBase, but can be overwritten in subclasses

    Parameters

    • _mutator: Mutator
    • _selection: string[] = null
    • _dispatchMutate: boolean = true

    Returns Promise<void>