Package net.sf.saxon.ma.arrays
Class ArrayItem
java.lang.Object
net.sf.saxon.ma.arrays.ArrayItem
- All Implemented Interfaces:
Callable,FunctionItem,GroundedValue,Item,Sequence
- Direct Known Subclasses:
AbstractArrayItem
Interface supported by different implementations of an XDM array item.
Saxon uses two main implementations of this interface: SimpleArrayItem, which is a wrapper
over a Java List (which is assumed immutable), and ImmutableArrayItem, which is a wrapper
over a Saxon ZenoChain, permitting efficient append and prepend operations without copying the
entire content. Many of the expressions and functions that create arrays use a learning strategy to
decide which implementation to use: if a significant number of SimpleArrayItem instances
are subsequently converted to an ImmutableArrayItem, then future evaluations of the same
expression will produce an ImmutableArrayItem directly.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract ArrayItemappend(GroundedValue newMember) Add a member to this arrayabstract intGet the number of members in the arrayabstract ArrayItemConcatenate this array with anotherabstract GroundedValueget(int index) Get a member of the arrayfinal GenregetGenre()Get the genre of this itemabstract SequenceTypeGet the lowest common item type of the members of the arrayabstract ArrayIteminsert(int position, GroundedValue member) Insert a new member into an arrayfinal booleanisArray()Ask whether this function item is an arraybooleanisEmpty()Ask whether the array is emptyfinal booleanisMap()Ask whether this function item is a mapabstract Iterable<GroundedValue> members()Get the list of all members of the arrayparcels()Get an iterator over the members of the array, each represented as aParcelabstract ArrayItemput(int index, GroundedValue newValue) Replace a member of the arrayabstract ArrayItemremove(int index) Remove a member from the arrayabstract ArrayItemremoveSeveral(IntSet positions) Remove zero or more members from the arrayabstract ArrayItemsubArray(int start, int end) Get a sub-array given a start and end positionProvide a short string showing the contents of the item, suitable for use in error messagesMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.sf.saxon.om.FunctionItem
deepEqual40, deepEquals, export, getAnnotations, getArity, getDescription, getFunctionItemType, getFunctionName, getOperandRoles, isSequenceVariadic, isTrustedResultType, makeNewContextMethods inherited from interface net.sf.saxon.om.GroundedValue
asIterable, concatenate, containsNode, effectiveBooleanValue, materializeMethods inherited from interface net.sf.saxon.om.Item
atomize, getLength, getStringValue, getUnicodeStringValue, head, isStreamed, itemAt, iterate, reduce, subsequenceMethods inherited from interface net.sf.saxon.om.Sequence
makeRepeatable
-
Constructor Details
-
ArrayItem
public ArrayItem()
-
-
Method Details
-
isArray
public final boolean isArray()Ask whether this function item is an array- Specified by:
isArrayin interfaceFunctionItem- Returns:
- true if this function item is an array, otherwise false
-
isMap
public final boolean isMap()Ask whether this function item is a map- Specified by:
isMapin interfaceFunctionItem- Returns:
- false (it is not a map)
-
get
Get a member of the array- Parameters:
index- the position of the member to retrieve (zero-based)- Returns:
- the value at the given position.
- Throws:
IndexOutOfBoundsException- if the index is out of range
-
put
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.
- Throws:
IndexOutOfBoundsException- if the index is out of range
-
arrayLength
public abstract int arrayLength()Get the number of members in the arrayNote: the
method always returns 1, because an array is an item- Returns:
- the number of members in this array.
-
isEmpty
public boolean isEmpty()Ask whether the array is empty- Returns:
- true if and only if the size of the array is zero
-
members
Get the list of all members of the array- Returns:
- an iterator over the members of the array
-
parcels
Get an iterator over the members of the array, each represented as aParcel- Returns:
- an
SequenceIteratorover the members of the array, represented as parcels
-
append
Add a member to this array- Parameters:
newMember- the member to be added- Returns:
- the new array, comprising the members of this array and then one additional member.
-
concat
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
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.
- Throws:
IndexOutOfBoundsException- if index is out of range
-
removeSeveral
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
- Throws:
IndexOutOfBoundsException- if any of the positions is out of range
-
subArray
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
- Throws:
IndexOutOfBoundsException- if start, or start+end, is out of range
-
insert
Insert a new member into an array- Parameters:
position- the 0-based position that the new item will assumemember- the new member to be inserted- Returns:
- a new array item with the new member inserted
- Throws:
IndexOutOfBoundsException- if position is out of range
-
getMemberType
Get the lowest common item type of the members of the array- Parameters:
th- the type hierarchy- Returns:
- the most specific type to which all the members belong.
-
toShortString
Provide a short string showing the contents of the item, suitable for use in error messages- Specified by:
toShortStringin interfaceFunctionItem- Specified by:
toShortStringin interfaceGroundedValue- Specified by:
toShortStringin interfaceItem- Returns:
- a depiction of the item suitable for use in error messages
-
getGenre
Get the genre of this item- Specified by:
getGenrein interfaceFunctionItem- Specified by:
getGenrein interfaceItem- Returns:
- the genre: specifically,
Genre.ARRAY.
-