com.mapinfo.midev.style

## Interface IMultiPass

All Superinterfaces:
  Iterable

All Known Subinterfaces:
  IInterior, ILineStyle, IPointStyle

    public interface IMultiPass
    extends Iterable

A list with limited functionality that provides a minimum subset of the `List` methods. The methods are:

       E get(int index);
       E set(int index, E element);
       boolean add(E element);
       void add(int index, E element);
       E remove(int index);
       void clear();
       Iterator<E> iterator();
       int size();

The `IMultiPass` interface contract requires that the iterator over this list should not support the remove method.

### Method Summary

All Methods Instance Methods Abstract Methods
`boolean` `add(Object element)` Appends the specified element to the end of this list.
`void` `add(int index, Object element)` Inserts the specified element at the specified position in this list.
`void` `clear()` Removes all of the elements from this list.
`Object` `get(int index)` Returns the element at the specified position in this list.
`boolean` `isEmpty()`
`Iterator` `iterator()`
`Object` `remove(int index)` Removes the element at the specified position in this list.
`Object` `set(int index, Object element)` Replaces the element at the specified position in this list with the specified element.
`int` `size()` Returns the number of elements in this list.

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

`forEach, spliterator`

### Method Detail

#### get

    Object get(int index)

Returns the element at the specified position in this list.

Parameters:
  `index` - index of element to return.
Returns:
  the element at the specified position in this list.
Throws:
  `IndexOutOfBoundsException` - if the index is out of range (index < 0 || index >= size()).

#### set

    Object set(int index,
               Object element)

Replaces the element at the specified position in this list with the specified element.

Parameters:
  `index` - index of element to replace.
  `element` - element to be stored at the specified position.
Returns:
  the element at the specified position in this list with the specified element.
Throws:
  `IndexOutOfBoundsException` - if the index is out of range (index < 0 || index >= size()).

#### add

    boolean add(Object element)

Appends the specified element to the end of this list.

Parameters:
  `element` - element to be appended to this list.
Returns:
  `true`.

#### add

    void add(int index,
             Object element)

Inserts the specified element at the specified position in this list. Shifts the element currently at that position (if any) and any subsequent elements to the right (adds one to their indices).

Parameters:
  `index` - index at which the specified element is to be inserted.
  `element` - element to be inserted.
Throws:
  `IndexOutOfBoundsException` - if the index is out of range (index < 0 || index > size()).

#### remove

    Object remove(int index)

Removes the element at the specified position in this list. Shifts any subsequent elements to the left (subtracts one from their indices). Returns the element that was removed from the list.

Parameters:
  `index` - the index of the element to removed.
Returns:
  the element previously at the specified position.
Throws:
  `IndexOutOfBoundsException` - if the index is out of range (index < 0 || index >= size()).

#### clear

    void clear()

Removes all of the elements from this list. This list will be empty after this call returns.

#### iterator

    Iterator iterator()

Specified by:
  `iterator` in interface `Iterable`

#### size

    int size()

Returns the number of elements in this list. If this list contains more than `Integer.MAX_VALUE` elements, returns `Integer.MAX_VALUE`.

Returns:
  the number of elements in this list.

#### isEmpty

    boolean isEmpty()