CompositeEntityCollection

external class CompositeEntityCollection(collections: ReadonlyArray<EntityCollection>? = definedExternally)(source)

Non-destructively composites multiple EntityCollection instances into a single collection. If a Entity with the same ID exists in multiple collections, it is non-destructively merged into a single new entity instance. If an entity has the same property in multiple collections, the property of the Entity in the last collection of the list it belongs to is used. CompositeEntityCollection can be used almost anywhere that a EntityCollection is used.

Parameters

collections

The initial list of EntityCollection instances to merge.

owner

The data source (or composite entity collection) which created this collection.

See also

Constructors

Link copied to clipboard
constructor(collections: ReadonlyArray<EntityCollection>? = definedExternally, owner: DataSource)
constructor(collections: ReadonlyArray<EntityCollection>? = definedExternally, owner: CompositeEntityCollection)
constructor(collections: ReadonlyArray<EntityCollection>? = definedExternally)

Properties

Link copied to clipboard

Gets the event that is fired when entities are added or removed from the collection. The generated event is a EntityCollection.collectionChangedEventCallback.

Link copied to clipboard
val id: String

Gets a globally unique identifier for this collection.

Link copied to clipboard
val owner: Any

Gets the owner of this composite entity collection, ie. the data source or composite entity collection which created it.

Link copied to clipboard

Gets the array of Entity instances in the collection. This array should not be modified directly.

Functions

Link copied to clipboard
fun addCollection(collection: EntityCollection, index: Int? = definedExternally)

Adds a collection to the composite.

Link copied to clipboard

Computes the maximum availability of the entities in the collection. If the collection contains a mix of infinitely available data and non-infinite data, It will return the interval pertaining to the non-infinite data only. If all data is infinite, an infinite interval will be returned.

Link copied to clipboard
fun contains(entity: Entity): Boolean

Returns true if the provided entity is in this collection, false otherwise.

Link copied to clipboard

Checks to see if the composite contains a given collection.

Link copied to clipboard
fun getById(id: String): Entity?

Gets an entity with the specified id.

Link copied to clipboard
fun getCollection(index: Int)

Gets a collection by index from the composite.

Link copied to clipboard

Gets the number of collections in this composite.

Link copied to clipboard

Determines the index of a given collection in the composite.

Link copied to clipboard

Lowers a collection down one position in the composite.

Link copied to clipboard

Lowers a collection to the bottom of the composite.

Link copied to clipboard

Raises a collection up one position in the composite.

Link copied to clipboard

Raises a collection to the top of the composite.

Link copied to clipboard

Removes all collections from this composite.

Link copied to clipboard

Removes a collection from this composite, if present.

Link copied to clipboard

Resumes raising EntityCollection.collectionChanged events immediately when an item is added or removed. Any modifications made while while events were suspended will be triggered as a single event when this function is called. This function also ensures the collection is recomposited if events are also resumed. This function is reference counted and can safely be called multiple times as long as there are corresponding calls to EntityCollection.resumeEvents.

Link copied to clipboard

Prevents EntityCollection.collectionChanged events from being raised until a corresponding call is made to EntityCollection.resumeEvents, at which point a single event will be raised that covers all suspended operations. This allows for many items to be added and removed efficiently. While events are suspended, recompositing of the collections will also be suspended, as this can be a costly operation. This function can be safely called multiple times as long as there are corresponding calls to EntityCollection.resumeEvents.