Package net.sf.saxon.ma.arrays
Class ImmutableArrayItem
- java.lang.Object
-
- net.sf.saxon.ma.arrays.ArrayItem
-
- net.sf.saxon.ma.arrays.AbstractArrayItem
-
- net.sf.saxon.ma.arrays.ImmutableArrayItem
-
- All Implemented Interfaces:
Callable,Function,GroundedValue,Item,Sequence
public class ImmutableArrayItem extends AbstractArrayItem
Implementation of ArrayItem backed by a persistent immutable array, so that operations that "update" the array do not have to copy the whole array
-
-
Constructor Summary
Constructors Constructor Description ImmutableArrayItem(SimpleArrayItem other)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intarrayLength()Get the number of members in the arrayArrayItemconcat(ArrayItem other)Concatenate this array with anotherGroundedValueget(int index)Get a member of the arrayArrayIteminsert(int position, GroundedValue member)Insert a new member into an arraybooleanisEmpty()Ask whether the array is emptyjava.lang.Iterable<GroundedValue>members()Get the list of all members of the arrayArrayItemput(int index, GroundedValue newValue)Replace a member of the arrayArrayItemremove(int index)Remove a member from the arrayArrayItemremoveSeveral(IntSet positions)Remove zero or more members from the arrayArrayItemsubArray(int start, int end)Get a subarray 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, getUnicodeStringValue, isTrustedResultType, makeNewContext, toString
-
Methods inherited from class net.sf.saxon.ma.arrays.ArrayItem
getGenre, getSerialNumber, isArray, isMap, toShortString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface net.sf.saxon.om.Function
isSequenceVariadic
-
Methods inherited from interface net.sf.saxon.om.GroundedValue
asIterable, concatenate, containsNode, materialize
-
Methods inherited from interface net.sf.saxon.om.Item
getLength, getStringValue, head, isStreamed, itemAt, iterate, reduce, subsequence
-
Methods inherited from interface net.sf.saxon.om.Sequence
makeRepeatable
-
-
-
-
Constructor Detail
-
ImmutableArrayItem
public ImmutableArrayItem(SimpleArrayItem other)
-
-
Method Detail
-
get
public GroundedValue get(int index)
Get a member of the array
-
put
public ArrayItem put(int index, GroundedValue newValue)
Replace a member of the array
-
insert
public ArrayItem insert(int position, GroundedValue member)
Insert a new member into an array
-
arrayLength
public int arrayLength()
Get the number of members in the arrayNote: the
method always returns 1, because an array is an item- Specified by:
arrayLengthin classArrayItem- Returns:
- the number of members in this array.
-
isEmpty
public boolean isEmpty()
Ask whether the array is empty
-
members
public java.lang.Iterable<GroundedValue> members()
Get the list of all members of the array
-
subArray
public ArrayItem subArray(int start, int end)
Get a subarray given a start and end position- Specified by:
subArrayin classArrayItem- 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
-
remove
public ArrayItem remove(int index)
Remove a member from the array
-
removeSeveral
public ArrayItem removeSeveral(IntSet positions)
Remove zero or more members from the array- Specified by:
removeSeveralin classArrayItem- 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
-
-