com.mapinfo.midev.feature

## Interface IMultiFeatureCollection

All Superinterfaces:
  Iterable, Serializable

    public interface IMultiFeatureCollection
    extends Iterable, Serializable

Represents a collection of `IFeatureCollection`s.

Refer to the package level documentation for a detailed discussion of the Feature Model.

See Also:
  `IFeatureCollection`

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `add(IFeatureCollection featureCollection)` Adds the specified `IFeatureCollection` to this `IMultiFeatureCollection`.
`void` `clear()` Removes all `IFeatureCollection`s from this collection.
`IMultiFeatureCollectionMetadata` `getMetadata()` Returns the metadata that describes this `IMultiFeatureCollection`.
`boolean` `isTransient()` Indicates if this `IMultiFeatureCollection` is transient.
`IFeatureCollectionIterator` `iterator()`
`void` `remove(IFeatureCollection featureCollection)` Removes the specified `IFeatureCollection` from this collection.

### Methods inherited from interface java.lang.Iterable

`forEach, spliterator`

### Method Detail

#### getMetadata

    IMultiFeatureCollectionMetadata getMetadata()

Returns the metadata that describes this `IMultiFeatureCollection`.

Returns:
  the metadata that describes this `IMultiFeatureCollection`.

#### isTransient

    boolean isTransient()

Indicates if this `IMultiFeatureCollection` is transient. An instance of `IMultiFeatureCollection` may have a lifetime that is controlled by an iterator, cursor, or other entity. A typical occurrence of transient features occurs when searching a database table. The feature iterator used to return the data in the resultset returns `IMultiFeatureCollection` instances whose data is connected to the memory of the cursor. When the next feature is accessed, the same memory is reused, thus making the previous feature invalid. These features are said to be transient.

There is no guarantee that repositioning a cursor returns the same feature each time, however, even if different feature instances are returned, the previous featur einstance should be assuumed to be invalid and cannot be accessed.

Transient does not have any relationship to the editability of the data. Features, feature collections, and tables may be edited even if they are designated as transient. Transient simply refers to the lifetime of the `IMultiFeatureCollection` and whether or not its memory may be reclaimed or reused as the result of some other action such as advancing an iterator or cursor.

Returns:
  `true` if this feature is transient; false otherwise.

#### iterator

    IFeatureCollectionIterator iterator()

Specified by:
  `iterator` in interface `Iterable`

#### add

    void add(IFeatureCollection featureCollection)

Adds the specified `IFeatureCollection` to this `IMultiFeatureCollection`.

Parameters:
  `featureCollection` - the specified `IFeatureCollection` to add to this `IMultiFeatureCollection`.

#### remove

    void remove(IFeatureCollection featureCollection)

Removes the specified `IFeatureCollection` from this collection.

Parameters:
  `featureCollection` - the `IFeatureCollection` to remove from this collection.

#### clear

    void clear()

Removes all `IFeatureCollection`s from this collection. This does not call `IFeatureCollection.clear()` on the contained `IFeatureCollections`.