de.caff.generics

## Class ExpandableIndexableImpl

- java.lang.Object
- - de.caff.generics.ExpandableIndexableImpl

-     class ExpandableIndexableImpl
      extends java.lang.Object

  Default implementation used for immutable expandable indexable.
  Since:
    September 24, 2020
  Author:
    Rammi

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `(package private) static int` | `LARGE_SIZE_LIMIT`
    `(package private) static int` | `PART_SIZE` Partition size.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ExpandableIndexableImpl()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `(package private) static <E> de.caff.generics.ExpandableIndexableImpl.ExpandableIndexableNode<E>` | `fromArray(E... values)` Create an expandable int indexable node from the given values.
    `(package private) static <E> de.caff.generics.ExpandableIndexableImpl.ExpandableIndexableNode<E>` | `fromArray(E[] values, int start, int length)` Create an expandable int indexable node from the given values.
    `(package private) static <E> de.caff.generics.ExpandableIndexableImpl.ExpandableIndexableNode<E>` | `fromIndexable(Indexable<? extends E> indexable)` Create an expandable integer indexable node from a given indexable.
    `static int` | `size(Indexable<?>[] indexables)`

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

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

- - ### Field Detail

    - #### PART_SIZE

          static final int PART_SIZE

      Partition size.
      See Also:
        Constant Field Values

    - #### LARGE_SIZE_LIMIT

          static final int LARGE_SIZE_LIMIT

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### ExpandableIndexableImpl

          ExpandableIndexableImpl()

  - ### Method Detail

    - #### size

          public static int size(@NotNull
                                 Indexable<?>[] indexables)

    - #### fromArray

          @NotNull
          static <E> de.caff.generics.ExpandableIndexableImpl.ExpandableIndexableNode<E> fromArray(E[] values,
                                                                                                            int start,
                                                                                                            int length)

      Create an expandable int indexable node from the given values.
      Type Parameters:
        `E` - element type
      Parameters:
        `values` - integer array with values
        `start` - start index into array to first element to be copied
        `length` - number of elements to copy
      Returns:
        expandable int indexable

    - #### fromArray

          @NotNull
           @SafeVarargs
          static <E> de.caff.generics.ExpandableIndexableImpl.ExpandableIndexableNode<E> fromArray(E... values)

      Create an expandable int indexable node from the given values.
      Type Parameters:
        `E` - element type
      Parameters:
        `values` - integer array with values
      Returns:
        expandable int indexable

    - #### fromIndexable

          @NotNull
          static <E> de.caff.generics.ExpandableIndexableImpl.ExpandableIndexableNode<E> fromIndexable(@NotNull
                                                                                                                Indexable<? extends E> indexable)

      Create an expandable integer indexable node from a given indexable.
      Type Parameters:
        `E` - element type
      Parameters:
        `indexable` - indexable defining the values of the returned indexable
      Returns:
        expandable int indexable