public static <R> ImmutableCell<R> of(int row, int column, R value) {
        if (row < 0) {
            throw new IndexOutOfBoundsException("Row must not be negative: " + row + " < 0");
        }
        if (column < 0) {
            throw new IndexOutOfBoundsException("Column must not be negative: " + column + " < 0");
        }
        if (value == null) {
            throw new IllegalArgumentException("Value must not be null");
        }
        return new ImmutableCell<R>(row, column, value);
    }
public static < R > ImmutableCell < R > of ( int row , int column , R value ) { if ( row < 0 ) { throw new IndexOutOfBoundsException ( "Row must not be negative: " + row + " < 0" ) ; } if ( column < 0 ) { throw new IndexOutOfBoundsException ( "Column must not be negative: " + column + " < 0" ) ; } if ( value == null ) { throw new IllegalArgumentException ( "Value must not be null" ) ; } return new ImmutableCell < R > ( row , column , value ) ; }
Obtains an instance of {@code Cell}.

@param <R> the type of the value
@param row  the row, zero or greater
@param column  the column, zero or greater
@param value  the value to put into the grid, not null
@return the immutable cell, not null
@throws IndexOutOfBoundsException if either index is less than zero