非破坏性地将多个
EntityCollection
实例组合成一个集合。如果多个集合中存在具有相同 ID 的实体,则将其无损合并到单个新实体实例中。如果一个实体在多个集合中具有相同的属性,则使用该实体在其所属列表的最后一个集合中的属性。 CompositeEntityCollection 几乎可以在使用 EntityCollection 的任何地方使用。
Name | Type | Description |
---|---|---|
collections
|
Array.< EntityCollection > | 可选 要合并的 EntityCollection 实例的初始列表。 |
owner
|
DataSource | CompositeEntityCollection | 可选 创建此集合的数据源(或复合实体集合)。 |
Members
readonly collectionChanged : Event
获取在集合中添加或删除实体时触发的事件。生成的事件是
EntityCollection.collectionChangedEventCallback
。
获取此集合的全局唯一标识符。
readonly owner : DataSource | CompositeEntityCollection
获取此复合实体集合的所有者,即。创建它的数据源或复合实体集合。
readonly values : Array.< Entity >
获取集合中 Entity 实例的数组。不应直接修改此数组。
Methods
将集合添加到组合中。
Name | Type | Description |
---|---|---|
collection
|
EntityCollection | 要添加的集合。 |
index
|
Number | 可选 的索引来添加集合。如果省略,该集合将添加到所有现有集合之上。 |
Throws:
-
DeveloperError :索引(如果提供)必须大于或等于零且小于或等于集合数。
computeAvailability () → TimeInterval
计算集合中实体的最大可用性。如果集合包含无限可用数据和非无限数据的混合,它将仅返回与非无限数据有关的区间。如果所有数据都是无限的,则将返回无限区间。
Returns:
集合中实体的可用性。
如果提供的实体在此集合中,则返回 true,否则返回 false。
Name | Type | Description |
---|---|---|
entity
|
Entity | 实体。 |
Returns:
如果提供的实体在此集合中,则为 true,否则为 false。
检查组合是否包含给定的集合。
Name | Type | Description |
---|---|---|
collection
|
EntityCollection | 要检查的集合。 |
Returns:
如果组合包含集合,则为 true,否则为 false。
getById (id) → Entity |undefined
获取具有指定 id 的实体。
Name | Type | Description |
---|---|---|
id
|
String | 要检索的实体的 ID。 |
Returns:
具有提供的 id 的实体,如果集合中不存在该 id,则为 undefined。
从组合中按索引获取集合。
Name | Type | Description |
---|---|---|
index
|
Number | 要检索的索引。 |
获取此组合中的集合数。
确定组合中给定集合的索引。
Name | Type | Description |
---|---|---|
collection
|
EntityCollection | 要查找其索引的集合。 |
Returns:
组合中集合的索引,如果组合中不存在集合,则为 -1。
将集合降低到合成中的一个位置。
Name | Type | Description |
---|---|---|
collection
|
EntityCollection | 要移动的集合。 |
Throws:
-
DeveloperError :集合不在此组合中。
将集合降低到合成的底部。
Name | Type | Description |
---|---|---|
collection
|
EntityCollection | 要移动的集合。 |
Throws:
-
DeveloperError :集合不在此组合中。
将集合在合成中提升一个位置。
Name | Type | Description |
---|---|---|
collection
|
EntityCollection | 要移动的集合。 |
Throws:
-
DeveloperError :集合不在此组合中。
将集合提升到组合的顶部。
Name | Type | Description |
---|---|---|
collection
|
EntityCollection | 要移动的集合。 |
Throws:
-
DeveloperError :集合不在此组合中。
从此组合中删除所有集合。
从此组合中删除一个集合(如果存在)。
Name | Type | Description |
---|---|---|
collection
|
EntityCollection | 要删除的集合。 |
Returns:
如果集合在组合中并被删除,则为 true;如果集合不在组合中,则为 false。
添加或删除项目时立即恢复引发
EntityCollection#collectionChanged
事件。在事件挂起期间所做的任何修改都将在调用此函数时作为单个事件触发。如果事件也恢复,此函数还确保重新组合集合。此函数是引用计数的,只要有对
EntityCollection#resumeEvents
的相应调用,就可以安全地多次调用该函数。
Throws:
-
DeveloperError :不能在suspendEvents 之前调用resumeEvents。
防止引发
EntityCollection#collectionChanged
事件,直到对
EntityCollection#resumeEvents
进行相应调用,此时将引发涵盖所有暂停操作的单个事件。这允许有效地添加和删除许多项目。当事件被暂停时,集合的重新组合也将被暂停,因为这可能是一项代价高昂的操作。只要有对
EntityCollection#resumeEvents
的相应调用,就可以安全地多次调用此函数。