Module java.desktop
Package javax.swing

## Class DefaultRowSorter.ModelWrapper<M,​I>

- java.lang.Object
- - javax.swing.DefaultRowSorter.ModelWrapper<M,​I>

- Type Parameters:
    `M` - the type of the underlying model
    `I` - the identifier supplied to the filter
  Enclosing class:
    DefaultRowSorter<M,​I>

      protected abstract static class DefaultRowSorter.ModelWrapper<M,​I>
      extends Object

  `DefaultRowSorter.ModelWrapper` is responsible for providing the data that gets sorted by `DefaultRowSorter`. You normally do not interact directly with `ModelWrapper`. Subclasses of `DefaultRowSorter` provide an implementation of `ModelWrapper` wrapping another model. For example, `TableRowSorter` provides a `ModelWrapper` that wraps a `TableModel`.

  `ModelWrapper` makes a distinction between values as `Object`s and `String`s. This allows implementations to provide a custom string converter to be used instead of invoking `toString` on the object.

  Since:
    1.6
  See Also:
    `RowFilter`, `RowFilter.Entry`

- - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `ModelWrapper()` | Creates a new `ModelWrapper`.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract int` | `getColumnCount()` | Returns the number of columns in the model.
    `abstract I` | `getIdentifier​(int row)` | Returns the identifier for the specified row.
    `abstract M` | `getModel()` | Returns the underlying model that this `Model` is wrapping.
    `abstract int` | `getRowCount()` | Returns the number of rows in the model.
    `String` | `getStringValueAt​(int row, int column)` | Returns the value as a `String` at the specified index.
    `abstract Object` | `getValueAt​(int row, int column)` | Returns the value at the specified index.

    - ### Methods declared in class java.lang.Object

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

- - ### Constructor Detail

    - #### ModelWrapper

          protected ModelWrapper()

      Creates a new `ModelWrapper`.

  - ### Method Detail

    - #### getModel

          public abstract M getModel()

      Returns the underlying model that this `Model` is wrapping.
      Returns:
        the underlying model

    - #### getColumnCount

          public abstract int getColumnCount()

      Returns the number of columns in the model.
      Returns:
        the number of columns in the model

    - #### getRowCount

          public abstract int getRowCount()

      Returns the number of rows in the model.
      Returns:
        the number of rows in the model

    - #### getValueAt

          public abstract Object getValueAt​(int row,
                                            int column)

      Returns the value at the specified index.
      Parameters:
        `row` - the row index
        `column` - the column index
      Returns:
        the value at the specified index
      Throws:
        `IndexOutOfBoundsException` - if the indices are outside the range of the model

    - #### getStringValueAt

          public String getStringValueAt​(int row,
                                         int column)

      Returns the value as a `String` at the specified index. This implementation uses `toString` on the result from `getValueAt` (making sure to return an empty string for null values). Subclasses that override this method should never return null.
      Parameters:
        `row` - the row index
        `column` - the column index
      Returns:
        the value at the specified index as a `String`
      Throws:
        `IndexOutOfBoundsException` - if the indices are outside the range of the model

    - #### getIdentifier

          public abstract I getIdentifier​(int row)

      Returns the identifier for the specified row. The return value of this is used as the identifier for the `RowFilter.Entry` that is passed to the `RowFilter`.
      Parameters:
        `row` - the row to return the identifier for, in terms of the underlying model
      Returns:
        the identifier
      See Also:
        `RowFilter.Entry.getIdentifier()`