Class ImmutableArrayItem

    • Constructor Detail

      • ImmutableArrayItem

        public ImmutableArrayItem​(SimpleArrayItem other)
        Create an ImmutableArrayItem as a copy of a supplied SimpleArrayItem
        Parameters:
        other - the supplied SimpleArrayItem
      • ImmutableArrayItem

        public ImmutableArrayItem​(java.lang.Iterable<GroundedValue> members)
        Create an ImmutableArrayItem , supplying the members of the array as a list (or other iterable) of values
        Parameters:
        members - the supplied collection of members.
    • Method Detail

      • from

        public static ImmutableArrayItem from​(SequenceIterator iter)
        Construct an array whose members are all single items, from the items supplied by a SequenceIterator
        Parameters:
        iter - delivers the items to make up the array
        Returns:
        an array whose members are single items.
      • get

        public GroundedValue get​(int index)
        Get a member of the array
        Specified by:
        get in class ArrayItem
        Parameters:
        index - the position of the member to retrieve (zero-based)
        Returns:
        the value at the given position.
        Throws:
        java.lang.IndexOutOfBoundsException - if the index is out of range
      • put

        public ArrayItem put​(int index,
                             GroundedValue newValue)
        Replace a member of the array
        Specified by:
        put in class ArrayItem
        Parameters:
        index - the position of the member to replace (zero-based)
        newValue - the replacement value
        Returns:
        the value at the given position.
        Throws:
        java.lang.IndexOutOfBoundsException - if the index is out of range
      • insert

        public ArrayItem insert​(int position,
                                GroundedValue member)
        Insert a new member into an array
        Specified by:
        insert in class ArrayItem
        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
        Throws:
        java.lang.IndexOutOfBoundsException - if position is out of range
      • append

        public ArrayItem append​(GroundedValue newMember)
        Add a member to this array
        Specified by:
        append in class ArrayItem
        Parameters:
        newMember - the member to be added
        Returns:
        the new array, comprising the members of this array and then one additional member.
      • isEmpty

        public boolean isEmpty()
        Ask whether the array is empty
        Overrides:
        isEmpty in class ArrayItem
        Returns:
        true if and only if the size of the array is zero
      • members

        public java.lang.Iterable<GroundedValue> members()
        Get the list of all members of the array
        Specified by:
        members in class ArrayItem
        Returns:
        an iterator over the members of the array
      • subArray

        public ArrayItem subArray​(int start,
                                  int end)
        Get a subarray given a start and end position
        Specified by:
        subArray in class ArrayItem
        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
        Throws:
        java.lang.IndexOutOfBoundsException - if start, or start+end, is out of range
      • concat

        public ArrayItem concat​(ArrayItem other)
        Concatenate this array with another
        Specified by:
        concat in class ArrayItem
        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)
        Remove a member from the array
        Specified by:
        remove in class ArrayItem
        Parameters:
        index - the position of the member to be removed (zero-based)
        Returns:
        a new array in which the requested member has been removed.
        Throws:
        java.lang.IndexOutOfBoundsException - if index is out of range
      • removeSeveral

        public ArrayItem removeSeveral​(IntSet positions)
        Remove zero or more members from the array
        Specified by:
        removeSeveral in class ArrayItem
        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