com.mapinfo.midev.feature.impl

## Class Feature

- java.lang.Object
- - com.mapinfo.midev.feature.impl.Feature

All Implemented Interfaces:
  IFeature, Serializable

    public final class Feature
    extends Object
    implements IFeature

Feature implementation that stores and manages attribute values in memory.

See Also:
  Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`Feature(IFeatureMetadata meta)` Constructs a feature with the supplied metadata.
`Feature(IFeatureMetadata metadata, IKey key)` Constructs a feature with the supplied metadata and key.

### Method Summary

All Methods Instance Methods Concrete Methods
`byte[]` `getBinary(int index)` Gets the value of the specified attribute.
`byte[]` `getBinary(String name)` Gets the value of the specified attribute.
`boolean` `getBoolean(int index)` Gets the value of the specified attribute.
`boolean` `getBoolean(String name)` Gets the value of the specified attribute.
`byte` `getByte(int index)` Gets the value of the specified attribute.
`byte` `getByte(String name)` Gets the value of the specified attribute.
`char` `getChar(int index)` Gets the value of the specified attribute.
`char` `getChar(String name)` Gets the value of the specified attribute.
`IFeature` `getCopy()` Get a (permanent) copy of this IFeature.
`MIDate` `getDate(int index)` Gets the value of the specified attribute.
`MIDate` `getDate(String name)` Gets the value of the specified attribute.
`MIDateTime` `getDateTime(int index)` Gets the value of the specified attribute.
`MIDateTime` `getDateTime(String name)` Gets the value of the specified attribute.
`MIDateTimeZone` `getDateTimeZone(int index)` Gets the value of the specified attribute.
`MIDateTimeZone` `getDateTimeZone(String name)` Gets the value of the specified attribute.
`String` `getDescription()` Contains a textual description of the feature.
`double` `getDouble(int index)` Gets the value of the specified attribute.
`double` `getDouble(String name)` Gets the value of the specified attribute.
`IFeature` `getFeature(int index)` Gets the value of the specified attribute.
`IFeature` `getFeature(String name)` Gets the value of the specified attribute.
`IFeatureCollection` `getFeatureCollection(int index)` Gets the value of the specified attribute.
`IFeatureCollection` `getFeatureCollection(String name)` Gets the value of the specified attribute.
`IFeatureGeometry` `getFeatureGeometry(int index)` Gets the value of the specified attribute.
`IFeatureGeometry` `getFeatureGeometry(String name)` Gets the value of the specified attribute.
`float` `getFloat(int index)` Gets the value of the specified attribute.
`float` `getFloat(String name)` Gets the value of the specified attribute.
`int` `getInt(int index)` Gets the value of the specified attribute.
`int` `getInt(String name)` Gets the value of the specified attribute.
`IKey` `getKey()` Returns the primary key that represents this IFeature.
`long` `getLong(int index)` Gets the value of the specified attribute.
`long` `getLong(String name)` Gets the value of the specified attribute.
`IFeatureMetadata` `getMetadata()` Accesses the metadata that describes this `IFeature`.
`IMultiFeatureCollection` `getMultiFeatureCollection(int index)` Gets the value of the specified attribute.
`IMultiFeatureCollection` `getMultiFeatureCollection(String name)` Gets the value of the specified attribute.
`Collection` `getNames()` A collection of names used to identify the feature.
`IRasterDataset` `getRasterDataset(int index)` Gets the value of the specified attribute.
`IRasterDataset` `getRasterDataset(String name)` Gets the value of the specified attribute.
`short` `getShort(int index)` Gets the value of the specified attribute.
`short` `getShort(String name)` Gets the value of the specified attribute.
`String` `getString(int index)` Gets the value of the specified attribute.
`String` `getString(String name)` Gets the value of the specified attribute.
`IStyle` `getStyle(int index)` Gets the value of the specified attribute.
`IStyle` `getStyle(String name)` Gets the value of the specified attribute.
`MITime` `getTime(int index)` Gets the value of the specified attribute.
`MITime` `getTime(String name)` Gets the value of the specified attribute.
`MITimespan` `getTimespan(int index)` Gets the value of the specified attribute.
`MITimespan` `getTimespan(String name)` Gets the value of the specified attribute.
`boolean` `isNull(int index)` Indicates if the value of the specified attribute is null.
`boolean` `isNull(String name)` Indicates if the value of the specified attribute is null.
`boolean` `isReadOnly()` Indicates if the attribute values for this feature are read only.
`boolean` `isTransient()` Indicates if this `IFeature` is transient.
`void` `setBinary(int index, byte[] buffer)` Sets the value of the specified attribute.
`void` `setBinary(String name, byte[] buffer)` Sets the value of the specified attribute.
`void` `setBoolean(int index, boolean value)` Sets the value of the specified attribute.
`void` `setBoolean(String name, boolean value)` Sets the value of the specified attribute.
`void` `setByte(int index, byte value)` Sets the value of the specified attribute.
`void` `setByte(String name, byte value)` Sets the value of the specified attribute.
`void` `setChar(int index, char value)` Sets the value of the specified attribute.
`void` `setChar(String name, char value)` Sets the value of the specified attribute.
`void` `setDate(int index, MIDate value)` Sets the value of the specified attribute.
`void` `setDate(String name, MIDate value)` Sets the value of the specified attribute.
`void` `setDateTime(int index, MIDateTime value)` Sets the value of the specified attribute.
`void` `setDateTime(String name, MIDateTime value)` Sets the value of the specified attribute.
`void` `setDateTimeZone(int index, MIDateTimeZone value)` Sets the value of the specified attribute.
`void` `setDateTimeZone(String name, MIDateTimeZone value)` Sets the value of the specified attribute.
`void` `setDescription(String description)` Sets the textual description of the feature.
`void` `setDouble(int index, double value)` Sets the value of the specified attribute.
`void` `setDouble(String name, double value)` Sets the value of the specified attribute.
`void` `setFeature(int index, IFeature value)` Sets the value of the specified attribute.
`void` `setFeature(String name, IFeature value)` Sets the value of the specified attribute.
`void` `setFeatureCollection(int index, IFeatureCollection value)` Sets the value of the specified attribute.
`void` `setFeatureCollection(String name, IFeatureCollection value)` Sets the value of the specified attribute.
`void` `setFeatureGeometry(int index, IFeatureGeometry value)` Sets the value of the specified attribute.
`void` `setFeatureGeometry(String name, IFeatureGeometry value)` Sets the value of the specified attribute.
`void` `setFloat(int index, float value)` Sets the value of the specified attribute.
`void` `setFloat(String name, float value)` Sets the value of the specified attribute.
`void` `setInt(int index, int value)` Sets the value of the specified attribute.
`void` `setInt(String name, int value)` Sets the value of the specified attribute.
`void` `setLong(int index, long value)` Sets the value of the specified attribute.
`void` `setLong(String name, long value)` Sets the value of the specified attribute.
`void` `setMultiFeatureCollection(int index, IMultiFeatureCollection value)` Sets the value of the specified attribute.
`void` `setMultiFeatureCollection(String name, IMultiFeatureCollection value)` Sets the value of the specified attribute.
`void` `setNull(int index)` Sets the value of the specified attribute to `null`.
`void` `setNull(String name)` Sets the value of the specified attribute to `null`.
`void` `setRasterDataset(int index, IRasterDataset value)` Sets the value of the specified attribute.
`void` `setRasterDataset(String name, IRasterDataset value)` Sets the value of the specified attribute.
`void` `setShort(int index, short value)` Sets the value of the specified attribute.
`void` `setShort(String name, short value)` Sets the value of the specified attribute.
`void` `setString(int index, String value)` Sets the value of the specified attribute.
`void` `setString(String name, String value)` Sets the value of the specified attribute.
`void` `setStyle(int index, IStyle value)` Sets the value of the specified attribute.
`void` `setStyle(String name, IStyle value)` Sets the value of the specified attribute.
`void` `setTime(int index, MITime value)` Sets the value of the specified attribute.
`void` `setTime(String name, MITime value)` Sets the value of the specified attribute.
`void` `setTimespan(int index, MITimespan value)` Sets the value of the specified attribute.
`void` `setTimespan(String name, MITimespan value)` Sets the value of the specified attribute.

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### Feature

    public Feature(IFeatureMetadata meta)

Constructs a feature with the supplied metadata.

Parameters:
  `meta` - The metadata that describes this `IFeature`.

#### Feature

    public Feature(IFeatureMetadata metadata,
                   IKey key)

Constructs a feature with the supplied metadata and key.

Parameters:
  `metadata` - The metadata that describes this `IFeature`.
  `key` - the primary key value of the IFeature.

### Method Detail

#### getNames

    public Collection getNames()

Description copied from interface: `IFeature`
A collection of names used to identify the feature. A feature may have several names, typically assigned by different authorities. The interface places no restrictions on the structure, meaning or uniqueness of names associated with a feature.

Specified by:
  `getNames` in interface `IFeature`
Returns:
  a collection of `String`s containing the names. The value may be an empty collection if no names are defined but will not return null.

#### getDescription

    public String getDescription()

Description copied from interface: `IFeature`
Contains a textual description of the feature. This property may be null if no description is available.

Specified by:
  `getDescription` in interface `IFeature`
Returns:
  a textual description of the feature.

#### isReadOnly

    public boolean isReadOnly()

Description copied from interface: `IFeature`
Indicates if the attribute values for this feature are read only.

Refer to the Read Only Properties and Determination section of the package summary for more comprehensive coverage.

Specified by:
  `isReadOnly` in interface `IFeature`
Returns:
  `true` if this feature specifically denies edits to attribute values; `false` otherwise.

#### getCopy

    public IFeature getCopy()

Description copied from interface: `IFeature`
Get a (permanent) copy of this IFeature. The feature metadata is not copied, the reference is shared between this feature and the new feature. Attribute values, however, are deep copied.

Specified by:
  `getCopy` in interface `IFeature`
Returns:
  permanent copy of this IFeature
See Also:
  `FeatureCopyUtilities.newFeature(IFeature)`, `IFeature.isTransient()`

#### getMetadata

    public IFeatureMetadata getMetadata()

Description copied from interface: `IFeature`
Accesses the metadata that describes this `IFeature`. The metadata defines the attributes that this feature contains.

Specified by:
  `getMetadata` in interface `IFeature`
Returns:
  an `IFeatureMetadata` which describes this feature.

#### isTransient

    public boolean isTransient()

Description copied from interface: `IFeature`
Indicates if this `IFeature` is transient. An instance of `IFeature` 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 `IFeature` 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 feature instance should be assumed 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 `IFeature` 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.

Specified by:
  `isTransient` in interface `IFeature`
Returns:
  `true` if this feature is transient; false otherwise.

#### isNull

    public boolean isNull(int index)

Description copied from interface: `IFeature`
Indicates if the value of the specified attribute is null. The typed accessor methods such as `getString` and `getInt` will throw an exception if the value for the attribute is null. Users should first check for null values using this method.

Specified by:
  `isNull` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to access.
Returns:
  `true` if the value for the attribute is null; `false` otherwise.

#### isNull

    public boolean isNull(String name)

Description copied from interface: `IFeature`
Indicates if the value of the specified attribute is null. The typed accessor methods such as `getString` and `getInt` will throw an exception if the value for the attribute is null. Users should first check for null values using this method.

Specified by:
  `isNull` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to access.
Returns:
  `true` if the value for the attribute is null; `false` otherwise.

#### getBoolean

    public boolean getBoolean(int index)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getBoolean` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getBoolean

    public boolean getBoolean(String name)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getBoolean` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getInt

    public int getInt(int index)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getInt` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getInt

    public int getInt(String name)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getInt` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getShort

    public short getShort(int index)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getShort` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getShort

    public short getShort(String name)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getShort` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getLong

    public long getLong(int index)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getLong` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getLong

    public long getLong(String name)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getLong` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getFloat

    public float getFloat(int index)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getFloat` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getFloat

    public float getFloat(String name)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getFloat` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getDouble

    public double getDouble(int index)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getDouble` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getDouble

    public double getDouble(String name)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getDouble` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getString

    public String getString(int index)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getString` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getString

    public String getString(String name)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getString` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getDate

    public MIDate getDate(int index)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getDate` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getDate

    public MIDate getDate(String name)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getDate` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getDateTime

    public MIDateTime getDateTime(int index)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getDateTime` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getDateTime

    public MIDateTime getDateTime(String name)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getDateTime` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getTime

    public MITime getTime(int index)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getTime` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getTime

    public MITime getTime(String name)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getTime` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getDateTimeZone

    public MIDateTimeZone getDateTimeZone(int index)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getDateTimeZone` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getDateTimeZone

    public MIDateTimeZone getDateTimeZone(String name)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getDateTimeZone` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getTimespan

    public MITimespan getTimespan(int index)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getTimespan` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getTimespan

    public MITimespan getTimespan(String name)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getTimespan` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getFeatureGeometry

    public IFeatureGeometry getFeatureGeometry(int index)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getFeatureGeometry` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getFeatureGeometry

    public IFeatureGeometry getFeatureGeometry(String name)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getFeatureGeometry` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getStyle

    public IStyle getStyle(int index)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getStyle` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getStyle

    public IStyle getStyle(String name)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getStyle` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getChar

    public char getChar(int index)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getChar` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getChar

    public char getChar(String name)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getChar` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getByte

    public byte getByte(int index)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getByte` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getByte

    public byte getByte(String name)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getByte` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getBinary

    public byte[] getBinary(int index)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getBinary` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getBinary

    public byte[] getBinary(String name)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getBinary` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getRasterDataset

    public IRasterDataset getRasterDataset(int index)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getRasterDataset` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getRasterDataset

    public IRasterDataset getRasterDataset(String name)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

Specified by:
  `getRasterDataset` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getFeature

    public IFeature getFeature(int index)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

todo: Include a section at the top of this interface or maybe in the Feature Package level docs about type extensibility and refer to that here....

Specified by:
  `getFeature` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getFeature

    public IFeature getFeature(String name)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

todo: Include a section at the top of this interface or maybe in the Feature Package level docs about type extensibility and refer to that here....

Specified by:
  `getFeature` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getFeatureCollection

    public IFeatureCollection getFeatureCollection(int index)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

todo: Include a section at the top of this interface or maybe in the Feature Package level docs about type extensibility and refer to that here....

Specified by:
  `getFeatureCollection` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getFeatureCollection

    public IFeatureCollection getFeatureCollection(String name)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

todo: Include a section at the top of this interface or maybe in the Feature Package level docs about type extensibility and refer to that here....

Specified by:
  `getFeatureCollection` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getMultiFeatureCollection

    public IMultiFeatureCollection getMultiFeatureCollection(int index)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

todo: Include a section at the top of this interface or maybe in the Feature Package level docs about type extensibility and refer to that here....

Specified by:
  `getMultiFeatureCollection` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### getMultiFeatureCollection

    public IMultiFeatureCollection getMultiFeatureCollection(String name)

Description copied from interface: `IFeature`
Gets the value of the specified attribute. If the value is `null`, an exception will be thrown. Users must check for null values before attempting to access a typed value accessor method.

todo: Include a section at the top of this interface or maybe in the Feature Package level docs about type extensibility and refer to that here....

Specified by:
  `getMultiFeatureCollection` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to access.
Returns:
  the value for the specified attribute.
See Also:
  `IFeature.isNull(int)`

#### setNull

    public void setNull(int index)

Description copied from interface: `IFeature`
Sets the value of the specified attribute to `null`. Attributes do not represent null using a value within the domain of the attribute type. For example, a string attribute is not set to null by calling `setString` and passing in a null string reference for the value. This will generate an exception. To set a value to null, use the setNull method.

Specified by:
  `setNull` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to modify.

#### setNull

    public void setNull(String name)

Description copied from interface: `IFeature`
Sets the value of the specified attribute to `null`. Attributes do not represent null using a value within the domain of the attribute type. For example, a string attribute is not set to null by calling `setString` and passing in a null string reference for the value. This will generate an exception. To set a value to null, use the setNull method.

Specified by:
  `setNull` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to modify.

#### setBoolean

    public void setBoolean(int index,
                           boolean value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setBoolean` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to modify.
  `value` - the new value for the attribute.

#### setBoolean

    public void setBoolean(String name,
                           boolean value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setBoolean` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to modify.
  `value` - the new value for the attribute.

#### setInt

    public void setInt(int index,
                       int value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setInt` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to modify.
  `value` - the new value for the attribute.

#### setInt

    public void setInt(String name,
                       int value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setInt` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to modify.
  `value` - the new value for the attribute.

#### setShort

    public void setShort(int index,
                         short value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setShort` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to modify.
  `value` - the new value for the attribute.

#### setShort

    public void setShort(String name,
                         short value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setShort` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to modify.
  `value` - the new value for the attribute.

#### setLong

    public void setLong(int index,
                        long value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setLong` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to modify.
  `value` - the new value for the attribute.

#### setLong

    public void setLong(String name,
                        long value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setLong` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to modify.
  `value` - the new value for the attribute.

#### setFloat

    public void setFloat(int index,
                         float value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setFloat` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to modify.
  `value` - the new value for the attribute.

#### setFloat

    public void setFloat(String name,
                         float value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setFloat` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to modify.
  `value` - the new value for the attribute.

#### setDouble

    public void setDouble(int index,
                          double value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setDouble` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to modify.
  `value` - the new value for the attribute.

#### setDouble

    public void setDouble(String name,
                          double value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setDouble` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to modify.
  `value` - the new value for the attribute.

#### setString

    public void setString(int index,
                          String value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setString` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to modify.
  `value` - the new value for the attribute.

#### setString

    public void setString(String name,
                          String value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setString` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to modify.
  `value` - the new value for the attribute.

#### setFeatureGeometry

    public void setFeatureGeometry(int index,
                                   IFeatureGeometry value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setFeatureGeometry` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to modify.
  `value` - the new value for the attribute.

#### setFeatureGeometry

    public void setFeatureGeometry(String name,
                                   IFeatureGeometry value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setFeatureGeometry` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to modify.
  `value` - the new value for the attribute.

#### setStyle

    public void setStyle(int index,
                         IStyle value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setStyle` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to modify.
  `value` - the new value for the attribute.

#### setStyle

    public void setStyle(String name,
                         IStyle value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setStyle` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to modify.
  `value` - the new value for the attribute.

#### setRasterDataset

    public void setRasterDataset(int index,
                                 IRasterDataset value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setRasterDataset` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to modify.
  `value` - the new value for the attribute.

#### setRasterDataset

    public void setRasterDataset(String name,
                                 IRasterDataset value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setRasterDataset` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to modify.
  `value` - the new value for the attribute.

#### setDate

    public void setDate(int index,
                        MIDate value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setDate` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to modify.
  `value` - the new value for the attribute.

#### setDate

    public void setDate(String name,
                        MIDate value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setDate` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to modify.
  `value` - the new value for the attribute.

#### setDateTime

    public void setDateTime(int index,
                            MIDateTime value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setDateTime` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to modify.
  `value` - the new value for the attribute.

#### setDateTime

    public void setDateTime(String name,
                            MIDateTime value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setDateTime` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to modify.
  `value` - the new value for the attribute.

#### setDateTimeZone

    public void setDateTimeZone(int index,
                                MIDateTimeZone value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setDateTimeZone` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to modify.
  `value` - the new value for the attribute.

#### setDateTimeZone

    public void setDateTimeZone(String name,
                                MIDateTimeZone value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setDateTimeZone` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to modify.
  `value` - the new value for the attribute.

#### setTime

    public void setTime(int index,
                        MITime value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setTime` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to modify.
  `value` - the new value for the attribute.

#### setTime

    public void setTime(String name,
                        MITime value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setTime` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to modify.
  `value` - the new value for the attribute.

#### setTimespan

    public void setTimespan(int index,
                            MITimespan value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setTimespan` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to modify.
  `value` - the new value for the attribute.

#### setTimespan

    public void setTimespan(String name,
                            MITimespan value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setTimespan` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to modify.
  `value` - the new value for the attribute.

#### setChar

    public void setChar(int index,
                        char value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setChar` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to modify.
  `value` - the new value for the attribute.

#### setChar

    public void setChar(String name,
                        char value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setChar` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to modify.
  `value` - the new value for the attribute.

#### setByte

    public void setByte(int index,
                        byte value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setByte` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to modify.
  `value` - the new value for the attribute.

#### setByte

    public void setByte(String name,
                        byte value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setByte` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to modify.
  `value` - the new value for the attribute.

#### setBinary

    public void setBinary(int index,
                          byte[] buffer)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setBinary` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to modify.
  `buffer` - the new value for the attribute.

#### setBinary

    public void setBinary(String name,
                          byte[] buffer)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setBinary` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to modify.
  `buffer` - the new value for the attribute.

#### setFeature

    public void setFeature(int index,
                           IFeature value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setFeature` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to modify.
  `value` - the new value for the attribute.

#### setFeature

    public void setFeature(String name,
                           IFeature value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setFeature` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to modify.
  `value` - the new value for the attribute.

#### setFeatureCollection

    public void setFeatureCollection(int index,
                                     IFeatureCollection value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setFeatureCollection` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to modify.
  `value` - the new value for the attribute.

#### setFeatureCollection

    public void setFeatureCollection(String name,
                                     IFeatureCollection value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setFeatureCollection` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to modify.
  `value` - the new value for the attribute.

#### setMultiFeatureCollection

    public void setMultiFeatureCollection(int index,
                                          IMultiFeatureCollection value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setMultiFeatureCollection` in interface `IFeature`
Parameters:
  `index` - the index of the attribute to modify.
  `value` - the new value for the attribute.

#### setMultiFeatureCollection

    public void setMultiFeatureCollection(String name,
                                          IMultiFeatureCollection value)

Description copied from interface: `IFeature`
Sets the value of the specified attribute.

Specified by:
  `setMultiFeatureCollection` in interface `IFeature`
Parameters:
  `name` - the name of the attribute to modify.
  `value` - the new value for the attribute.

#### getKey

    public IKey getKey()

Description copied from interface: `IFeature`
Returns the primary key that represents this IFeature. May be null if a key is not defined.

Specified by:
  `getKey` in interface `IFeature`
Returns:
  the primary key that represents this IFeature. May be null if a key is not defined.

#### setDescription

    public void setDescription(String description)

Sets the textual description of the feature.

Parameters:
  `description` - a textual description of the feature.