# DataSourceCollection

#### new Cesium.DataSourceCollection()
DataSources/DataSourceCollection.js 25

  A collection of `DataSource` instances.

### Members

#### readonlydataSourceAdded : Event
DataSources/DataSourceCollection.js 51

  An event that is raised when a data source is added to the collection. Event handlers are passed the data source that was added.

#### readonlydataSourceRemoved : Event
DataSources/DataSourceCollection.js 64

  An event that is raised when a data source is removed from the collection. Event handlers are passed the data source that was removed.

#### readonlylength : Number
DataSources/DataSourceCollection.js 38

  Gets the number of data sources in this collection.

### Methods

#### add(dataSource) → Promise.<DataSource>
DataSources/DataSourceCollection.js 79

  Adds a data source to the collection.

  Name | Type | Description
  --- | --- | ---
  `dataSource` | DataSource | Promise.<DataSource> | A data source or a promise to a data source to add to the collection. When passing a promise, the data source will not actually be added to the collection until the promise resolves successfully.

  ##### Returns:

  A Promise that resolves once the data source has been added to the collection.

#### contains(dataSource) → Boolean
DataSources/DataSourceCollection.js 151

  Checks to see if the collection contains a given data source.

  Name | Type | Description
  --- | --- | ---
  `dataSource` | DataSource | The data source to check for.

  ##### Returns:

  true if the collection contains the data source, false otherwise.

#### destroy() → undefined
DataSources/DataSourceCollection.js 210

  Destroys the resources held by all data sources in this collection. Explicitly destroying this object allows for deterministic release of WebGL resources, instead of relying on the garbage collector. Once this object is destroyed, it should not be used; calling any function other than `isDestroyed` will result in a `DeveloperError` exception. Therefore, assign the return value (`undefined`) to the object as done in the example.

  ##### Returns:

  ##### Throws:

  - DeveloperError : This object was destroyed, i.e., destroy() was called.

  ##### Example:

      dataSourceCollection = dataSourceCollection && dataSourceCollection.destroy();

  ##### See:

  - DataSourceCollection#isDestroyed

#### get(index)
DataSources/DataSourceCollection.js 170

  Gets a data source by index from the collection.

  Name | Type | Description
  --- | --- | ---
  `index` | Number | the index to retrieve.

#### indexOf(dataSource) → Number
DataSources/DataSourceCollection.js 161

  Determines the index of a given data source in the collection.

  Name | Type | Description
  --- | --- | ---
  `dataSource` | DataSource | The data source to find the index of.

  ##### Returns:

  The index of the data source in the collection, or -1 if the data source does not exist in the collection.

#### isDestroyed() → Boolean
DataSources/DataSourceCollection.js 189

  Returns true if this object was destroyed; otherwise, false. If this object was destroyed, it should not be used; calling any function other than `isDestroyed` will result in a `DeveloperError` exception.

  ##### Returns:

  true if this object was destroyed; otherwise, false.

  ##### See:

  - DataSourceCollection#destroy

#### remove(dataSource, destroy) → Boolean
DataSources/DataSourceCollection.js 107

  Removes a data source from this collection, if present.

  Name | Type | Default | Description
  --- | --- | --- | ---
  `dataSource` | DataSource |  | The data source to remove.
  `destroy` | Boolean | `false` | optional Whether to destroy the data source in addition to removing it.

  ##### Returns:

  true if the data source was in the collection and was removed, false if the data source was not in the collection.

#### removeAll(destroy)
DataSources/DataSourceCollection.js 130

  Removes all data sources from this collection.

  Name | Type | Default | Description
  --- | --- | --- | ---
  `destroy` | Boolean | `false` | optional whether to destroy the data sources in addition to removing them.