Package com.saxonica.xsltextn.pedigree

## Class DelegatingArrayItem

- java.lang.Object
- - net.sf.saxon.ma.arrays.AbstractArrayItem
  - - com.saxonica.xsltextn.pedigree.DelegatingArrayItem

- All Implemented Interfaces:
    `Callable`, `ArrayItem`, `Function`, `GroundedValue`, `Item`, `Sequence`
  Direct Known Subclasses:
    `PedigreeArrayItem`

      public abstract class DelegatingArrayItem
      extends AbstractArrayItem

  A `DelegatingArrayItem` is an abstract class representing an array that is implemented by delegating all array-related functionality to a base class. Unless any methods are overridden, the functionality is identical to that of the wrapped array item.

  Note that methods such as `put(int, net.sf.saxon.om.GroundedValue)` that create a new array will (unless overridden) simply delegate to the base array, and the new array will therefore not be a delegating array.

- - ### Field Summary

    - ### Fields inherited from interface net.sf.saxon.ma.arrays.ArrayItem

      `SINGLE_ARRAY_TYPE`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `DelegatingArrayItem​(ArrayItem base)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `arrayLength()` | Get the number of members in the array
    `ArrayItem` | `concat​(ArrayItem other)` | Concatenate this array with another
    `GroundedValue` | `get​(int index)` | Get a member of the array
    `ArrayItem` | `getBaseItem()` |
    `ArrayItem` | `insert​(int position, GroundedValue member)` | Insert a new member into an array
    `boolean` | `isEmpty()` | Ask whether the array is empty
    `java.lang.Iterable<GroundedValue>` | `members()` | Get the list of all members of the array
    `ArrayItem` | `put​(int index, GroundedValue newValue)` | Replace a member of the array
    `ArrayItem` | `remove​(int index)` | Remove a member from the array
    `ArrayItem` | `removeSeveral​(IntSet positions)` | Remove zero or more members from the array
    `ArrayItem` | `subArray​(int start, int end)` | Get a sub-array given a start and end position

    - ### Methods inherited from class net.sf.saxon.ma.arrays.AbstractArrayItem

      `atomize, call, deepEquals, effectiveBooleanValue, export, getAnnotations, getArity, getDescription, getFunctionItemType, getFunctionName, getMemberType, getOperandRoles, getStringValue, getStringValueCS, isArray, isMap, isTrustedResultType, makeNewContext, toString`

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

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

    - ### Methods inherited from interface net.sf.saxon.ma.arrays.ArrayItem

      `getGenre, toShortString`

    - ### Methods inherited from interface net.sf.saxon.om.GroundedValue

      `asIterable, concatenate, containsNode, materialize`

    - ### Methods inherited from interface net.sf.saxon.om.Item

      `getLength, head, isStreamed, itemAt, iterate, reduce, subsequence`

    - ### Methods inherited from interface net.sf.saxon.om.Sequence

      `makeRepeatable`

- - ### Constructor Detail

    - #### DelegatingArrayItem

          public DelegatingArrayItem​(ArrayItem base)

  - ### Method Detail

    - #### get

          public GroundedValue get​(int index)

      Description copied from interface: `ArrayItem`
      Get a member of the array
      Parameters:
        `index` - the position of the member to retrieve (zero-based)
      Returns:
        the value at the given position.

    - #### put

          public ArrayItem put​(int index,
                               GroundedValue newValue)

      Description copied from interface: `ArrayItem`
      Replace a member of the array
      Parameters:
        `index` - the position of the member to replace (zero-based)
        `newValue` - the replacement value
      Returns:
        the value at the given position.

    - #### arrayLength

          public int arrayLength()

      Description copied from interface: `ArrayItem`
      Get the number of members in the array

      Note: the `method always returns 1, because an array is an item`

      Returns:
        the number of members in this array.

    - #### isEmpty

          public boolean isEmpty()

      Description copied from interface: `ArrayItem`
      Ask whether the array is empty
      Returns:
        true if and only if the size of the array is zero

    - #### members

          public java.lang.Iterable<GroundedValue> members()

      Description copied from interface: `ArrayItem`
      Get the list of all members of the array
      Returns:
        an iterator over the members of the array

    - #### concat

          public ArrayItem concat​(ArrayItem other)

      Description copied from interface: `ArrayItem`
      Concatenate this array with another
      Parameters:
        `other` - the second array
      Returns:
        the concatenation of the two arrays; that is, an array containing first the members of this array, and then the members of the other array

    - #### remove

          public ArrayItem remove​(int index)

      Description copied from interface: `ArrayItem`
      Remove a member from the array
      Parameters:
        `index` - the position of the member to be removed (zero-based)
      Returns:
        a new array in which the requested member has been removed.

    - #### removeSeveral

          public ArrayItem removeSeveral​(IntSet positions)

      Description copied from interface: `ArrayItem`
      Remove zero or more members from the array
      Parameters:
        `positions` - the positions of the members to be removed (zero-based). A value that is out of range is ignored.
      Returns:
        a new array in which the requested member has been removed

    - #### subArray

          public ArrayItem subArray​(int start,
                                    int end)

      Description copied from interface: `ArrayItem`
      Get a sub-array given a start and end position
      Parameters:
        `start` - the start position (zero based)
        `end` - the end position (the position of the first item not to be returned) (zero based)
      Returns:
        a new array item containing the sub-array

    - #### insert

          public ArrayItem insert​(int position,
                                  GroundedValue member)

      Description copied from interface: `ArrayItem`
      Insert a new member into an array
      Parameters:
        `position` - the 0-based position that the new item will assume
        `member` - the new member to be inserted
      Returns:
        a new array item with the new member inserted

    - #### getBaseItem

          public ArrayItem getBaseItem()