de.caff.generics.mda

## Interface MultiDimensionalReadAccess<T>

- All Superinterfaces:
    MultiDimensional
  All Known Subinterfaces:
    MultiDimensionalAccess<T>, OneDimensionalAccess<T>, OneDimensionalBooleanAccess, OneDimensionalBooleanReadAccess, OneDimensionalByteAccess, OneDimensionalByteReadAccess, OneDimensionalCharAccess, OneDimensionalCharReadAccess, OneDimensionalDoubleAccess, OneDimensionalDoubleReadAccess, OneDimensionalFloatAccess, OneDimensionalFloatReadAccess, OneDimensionalIntAccess, OneDimensionalIntReadAccess, OneDimensionalLongAccess, OneDimensionalLongReadAccess, OneDimensionalReadAccess<T>, OneDimensionalShortAccess, OneDimensionalShortReadAccess, ThreeDimensionalAccess<T>, ThreeDimensionalBooleanAccess, ThreeDimensionalBooleanReadAccess, ThreeDimensionalByteAccess, ThreeDimensionalByteReadAccess, ThreeDimensionalCharAccess, ThreeDimensionalCharReadAccess, ThreeDimensionalDoubleAccess, ThreeDimensionalDoubleReadAccess, ThreeDimensionalFloatAccess, ThreeDimensionalFloatReadAccess, ThreeDimensionalIntAccess, ThreeDimensionalIntReadAccess, ThreeDimensionalLongAccess, ThreeDimensionalLongReadAccess, ThreeDimensionalReadAccess<T>, ThreeDimensionalShortAccess, ThreeDimensionalShortReadAccess, TwoDimensionalAccess<T>, TwoDimensionalBooleanAccess, TwoDimensionalBooleanReadAccess, TwoDimensionalByteAccess, TwoDimensionalByteReadAccess, TwoDimensionalCharAccess, TwoDimensionalCharReadAccess, TwoDimensionalDoubleAccess, TwoDimensionalDoubleReadAccess, TwoDimensionalFloatAccess, TwoDimensionalFloatReadAccess, TwoDimensionalIntAccess, TwoDimensionalIntReadAccess, TwoDimensionalLongAccess, TwoDimensionalLongReadAccess, TwoDimensionalReadAccess<T>, TwoDimensionalShortAccess, TwoDimensionalShortReadAccess
  All Known Implementing Classes:
    AbstractBasicMultiDimensionalArray, MultiDimensionalArray, MultiDimensionalBooleanArray, MultiDimensionalByteArray, MultiDimensionalCharArray, MultiDimensionalDoubleArray, MultiDimensionalFloatArray, MultiDimensionalIntArray, MultiDimensionalLongArray, MultiDimensionalShortArray, OneDimensionalArray, OneDimensionalBooleanArray, OneDimensionalBooleanReadAccess.Base, OneDimensionalByteArray, OneDimensionalByteReadAccess.Base, OneDimensionalCharArray, OneDimensionalCharReadAccess.Base, OneDimensionalDoubleArray, OneDimensionalDoubleReadAccess.Base, OneDimensionalFloatArray, OneDimensionalFloatReadAccess.Base, OneDimensionalIntArray, OneDimensionalIntReadAccess.Base, OneDimensionalLongArray, OneDimensionalLongReadAccess.Base, OneDimensionalReadAccess.Base, OneDimensionalShortArray, OneDimensionalShortReadAccess.Base, SmallTwoDimensionalArray, SmallTwoDimensionalBitArray, SmallTwoDimensionalBooleanArray, SmallTwoDimensionalByteArray, SmallTwoDimensionalCharArray, SmallTwoDimensionalDoubleArray, SmallTwoDimensionalFloatArray, SmallTwoDimensionalIntArray, SmallTwoDimensionalLongArray, SmallTwoDimensionalShortArray, ThreeDimensionalArray, ThreeDimensionalBooleanArray, ThreeDimensionalByteArray, ThreeDimensionalCharArray, ThreeDimensionalDoubleArray, ThreeDimensionalFloatArray, ThreeDimensionalIntArray, ThreeDimensionalLongArray, ThreeDimensionalShortArray, TwoDimensionalArray, TwoDimensionalBooleanArray, TwoDimensionalBooleanReadAccess.Base, TwoDimensionalByteArray, TwoDimensionalByteReadAccess.Base, TwoDimensionalCharArray, TwoDimensionalCharReadAccess.Base, TwoDimensionalDoubleArray, TwoDimensionalDoubleReadAccess.Base, TwoDimensionalFloatArray, TwoDimensionalFloatReadAccess.Base, TwoDimensionalIntArray, TwoDimensionalIntReadAccess.Base, TwoDimensionalLongArray, TwoDimensionalLongReadAccess.Base, TwoDimensionalReadAccess.Base, TwoDimensionalShortArray, TwoDimensionalShortReadAccess.Base

      public interface MultiDimensionalReadAccess<T>
      extends MultiDimensional

  Multi-dimensional read access.
  Since:
    November 06, 2019
  Author:
    Rammi

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static MultiDimensionalReadAccess<?>` | `EMPTY0` Empty multi-dimensional read access for 0 dimensions.
    `static MultiDimensionalReadAccess<?>` | `EMPTY1` Empty multi-dimensional read access for 1 dimension.
    `static MultiDimensionalReadAccess<?>` | `EMPTY2` Empty multi-dimensional read access for 2 dimensions.
    `static MultiDimensionalReadAccess<?>` | `EMPTY3` Empty multi-dimensional read access for 3 dimensions.
    `static MultiDimensionalReadAccess<?>` | `EMPTY4` Empty multi-dimensional read access for 4 dimensions.
    `static MultiDimensionalReadAccess<?>` | `EMPTY5` Empty multi-dimensional read access for 4 dimensions.
    `static MultiDimensionalReadAccess<?>` | `EMPTY6` Empty multi-dimensional read access for 4 dimensions.
    `static MultiDimensionalReadAccess<?>` | `EMPTY7` Empty multi-dimensional read access for 4 dimensions.

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `static <E> MultiDimensionalReadAccess<E>` | `empty(int numDimensions)`
    `T` | `getElement(int... indexes)` Get the element located at the given indexes.
    `default java.lang.Iterable<T>` | `linearized()` Get an iterable over all elements of this multi-dimensional access.
    `default void` | `visitAll(Procedure1<? super T> visitor)` Visit all elements in this multi-dimensional array.
    `default void` | `visitAll(Procedure2<? super T,int[]> visitor)` Visit all elements of this multi-dimensional array.

    - ### Methods inherited from interface de.caff.generics.mda.MultiDimensional

      `getNumDimensions, getNumElements, getSize, getSizes`

- - ### Field Detail

    - #### EMPTY0

          static final MultiDimensionalReadAccess<?> EMPTY0

      Empty multi-dimensional read access for 0 dimensions. Use `MultiDimensionalReadAccess.empty(0)` instead.

    - #### EMPTY1

          static final MultiDimensionalReadAccess<?> EMPTY1

      Empty multi-dimensional read access for 1 dimension. Use `MultiDimensionalReadAccess.empty(1)` instead.

    - #### EMPTY2

          static final MultiDimensionalReadAccess<?> EMPTY2

      Empty multi-dimensional read access for 2 dimensions. Use `MultiDimensionalReadAccess.empty(2)` instead.

    - #### EMPTY3

          static final MultiDimensionalReadAccess<?> EMPTY3

      Empty multi-dimensional read access for 3 dimensions. Use `MultiDimensionalReadAccess.empty(3)` instead.

    - #### EMPTY4

          static final MultiDimensionalReadAccess<?> EMPTY4

      Empty multi-dimensional read access for 4 dimensions. Use `MultiDimensionalReadAccess.empty(4)` instead.

    - #### EMPTY5

          static final MultiDimensionalReadAccess<?> EMPTY5

      Empty multi-dimensional read access for 4 dimensions. Use `MultiDimensionalReadAccess.empty(5)` instead.

    - #### EMPTY6

          static final MultiDimensionalReadAccess<?> EMPTY6

      Empty multi-dimensional read access for 4 dimensions. Use `MultiDimensionalReadAccess.empty(6)` instead.

    - #### EMPTY7

          static final MultiDimensionalReadAccess<?> EMPTY7

      Empty multi-dimensional read access for 4 dimensions. Use `MultiDimensionalReadAccess.empty(7)` instead.

  - ### Method Detail

    - #### getElement

          T getElement(int... indexes)

      Get the element located at the given indexes.
      Parameters:
        `indexes` - `MultiDimensional.getNumDimensions()` indexes inside the bounds defined by `MultiDimensional.getSizes()`
      Returns:
        element located at the given indexes

    - #### visitAll

          default void visitAll(@NotNull
                                Procedure2<? super T,int[]> visitor)

      Visit all elements of this multi-dimensional array.
      Parameters:
        `visitor` - visitor called with an array element and its multi-index

    - #### visitAll

          default void visitAll(@NotNull
                                Procedure1<? super T> visitor)

      Visit all elements in this multi-dimensional array.
      Parameters:
        `visitor` - element visitor called once with each element

    - #### linearized

          @NotNull
          default java.lang.Iterable<T> linearized()

      Get an iterable over all elements of this multi-dimensional access.
      Returns:
        iterable which iterates over all elements

    - #### empty

          @NotNull
          static <E> MultiDimensionalReadAccess<E> empty(int numDimensions)