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.
参数名称 | 类型 | 描述信息 |
---|---|---|
collections |
Array.<EntityCollection> | 可选 The initial list of EntityCollection instances to merge. |
owner |
DataSource | CompositeEntityCollection | 可选 The data source (or composite entity collection) which created this collection. |
成员(属性)
readonly collectionChanged : Event
Gets the event that is fired when entities are added or removed from the collection.
The generated event is a
EntityCollection.collectionChangedEventCallback
.
Gets a globally unique identifier for this collection.
readonly owner : DataSource|CompositeEntityCollection
Gets the owner of this composite entity collection, ie. the data source or composite entity collection which created it.
readonly values : Array.<Entity>
Gets the array of Entity instances in the collection.
This array should not be modified directly.
方法
Adds a collection to the composite.
参数名称 | 类型 | 描述信息 |
---|---|---|
collection |
EntityCollection | the collection to add. |
index |
number | 可选 the index to add the collection at. If omitted, the collection will added on top of all existing collections. |
Throws:
-
DeveloperError : index, if supplied, must be greater than or equal to zero and less than or equal to the number of collections.
computeAvailability() → TimeInterval
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.
返回值:
The availability of entities in the collection.
Returns true if the provided entity is in this collection, false otherwise.
参数名称 | 类型 | 描述信息 |
---|---|---|
entity |
Entity | The entity. |
返回值:
true if the provided entity is in this collection, false otherwise.
Checks to see if the composite contains a given collection.
参数名称 | 类型 | 描述信息 |
---|---|---|
collection |
EntityCollection | the collection to check for. |
返回值:
true if the composite contains the collection, false otherwise.
getById(id) → Entity|undefined
Gets an entity with the specified id.
参数名称 | 类型 | 描述信息 |
---|---|---|
id |
string | The id of the entity to retrieve. |
返回值:
The entity with the provided id or undefined if the id did not exist in the collection.
Gets a collection by index from the composite.
参数名称 | 类型 | 描述信息 |
---|---|---|
index |
number | the index to retrieve. |
Gets the number of collections in this composite.
Determines the index of a given collection in the composite.
参数名称 | 类型 | 描述信息 |
---|---|---|
collection |
EntityCollection | The collection to find the index of. |
返回值:
The index of the collection in the composite, or -1 if the collection does not exist in the composite.
Lowers a collection down one position in the composite.
参数名称 | 类型 | 描述信息 |
---|---|---|
collection |
EntityCollection | the collection to move. |
Throws:
-
DeveloperError : collection is not in this composite.
Lowers a collection to the bottom of the composite.
参数名称 | 类型 | 描述信息 |
---|---|---|
collection |
EntityCollection | the collection to move. |
Throws:
-
DeveloperError : collection is not in this composite.
Raises a collection up one position in the composite.
参数名称 | 类型 | 描述信息 |
---|---|---|
collection |
EntityCollection | the collection to move. |
Throws:
-
DeveloperError : collection is not in this composite.
Raises a collection to the top of the composite.
参数名称 | 类型 | 描述信息 |
---|---|---|
collection |
EntityCollection | the collection to move. |
Throws:
-
DeveloperError : collection is not in this composite.
Removes all collections from this composite.
Removes a collection from this composite, if present.
参数名称 | 类型 | 描述信息 |
---|---|---|
collection |
EntityCollection | The collection to remove. |
返回值:
true if the collection was in the composite and was removed,
false if the collection was not in the composite.
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
.
Throws:
-
DeveloperError : resumeEvents can not be called before suspendEvents.
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
.