The root of a Matter model. This is the parent for global models.

Hierarchy (view full)

Implements

Constructors

Properties

asOf?: `${number}.${number}`
description?: string
details?: string
errors?: DefinitionError[]
id?: number
isSeed?: boolean
isType?: boolean

Indicates that an element defines a datatype.

isTypeScope: boolean = true

Indicates that an element may have type definitions as children.

name: string
operationalBase?: Model<BaseElement>

Normally base performs lookup based on type. If instead a model is installed it is used as the base.

The operational base also enables resolution from the operational base's tree. This enables resolution on operational models that are not installed in a parent hierarchy.

revision?: `${number}.${number}`
tag: Matter = MatterElement.Tag
type?: string
until?: `${number}.${number}`
standard: MatterModel = ...

The default instance of the canonical MatterModel (also exported directly simply as "Matter").

types: {
    [type: string]: (new (definition: any) => Model);
} = ...

Factory support. Populated by derivatives upon definition.

Accessors

  • get discriminator(): undefined | string
  • Obtain a discriminator that differentiates different models with the same name

    Returns undefined | string

  • get effectiveId(): undefined | number
  • Allows subclasses to pull a working ID from an alternate source.

    Returns undefined | number

  • get effectiveType(): undefined | string
  • In some circumstances the base type can be inferred. This inference happens here.

    Does not recurse so only returns the direct base type.

    Returns undefined | string

  • get isGlobal(): boolean
  • Determine if this model resides in the global namespace.

    Returns boolean

  • get key(): undefined | string
  • Get a string that uniquely identifies this model. This is normally the effective ID but some models require a generated identifier.

    Returns undefined | string

  • get path(): string
  • The path ("." delimited) in the Matter tree.

    This is informational and generally tries to adhere to JS API conventions.

    Returns string

  • get seedGlobals(): Child[]
  • All sub-cluster global elements from this model.

    This is the set of utility datatypes required by cluster definitions.

    The returned elements are clones as we use this to initialize empty models for testing or diagnostic purposes.

    Returns Child[]

Methods

  • Freeze the model hierarchy rooted at this model.

    When using a model as operational schema we implement various optimizations that assume the schema is immutable. This function enforces that assumption.

    To make changes to a frozen model use clone.

    Returns void