Package net.sf.saxon.ma.map
Class RangeKey
- java.lang.Object
-
- net.sf.saxon.ma.map.MapItem
-
- net.sf.saxon.ma.map.RangeKey
-
- All Implemented Interfaces:
Callable
,FunctionItem
,GroundedValue
,Item
,Sequence
public class RangeKey extends MapItem
This class implements an XPath map item as a view of an XSLT key index. It is possible to specify a minimum and maximum key value to be included in the map, and keys are returned in sorted order.At present range keys are only available for string-valued keys using the Unicode codepoint collating sequence.
-
-
Constructor Summary
Constructors Constructor Description RangeKey(UnicodeString min, UnicodeString max, java.util.TreeMap<AtomicMatchKey,java.lang.Object> index)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description MapItem
addEntry(AtomicValue key, GroundedValue value)
Create a new map containing the existing entries in the map plus an additional entry, without modifying the original.boolean
conforms(PlainType keyType, SequenceType valueType, TypeHierarchy th)
Ask whether the map conforms to a given map typeboolean
deepEqual40(FunctionItem other, XPathContext context, DeepEqual.DeepEqualOptions options)
boolean
deepEquals(FunctionItem other, XPathContext context, AtomicComparer comparer, int flags)
Test whether this FunctionItem is deep-equal to another function item, under the rules of the deep-equal functionvoid
export(ExpressionPresenter out)
Output information about this function item to the diagnostic explain() outputGroundedValue
get(AtomicValue key)
Get an entry from the Mapjava.lang.String
getDescription()
Get a description of this function for use in error messages.MapType
getFunctionItemType()
Get the item type of the function itemMapType
getItemType(TypeHierarchy th)
Get the type of the map.UType
getKeyUType()
Get the lowest common item type of the keys in the mapboolean
isEmpty()
Ask whether the map is emptyboolean
isTrustedResultType()
Ask if the function can be trusted to return a result of the correct typeAtomicIterator
keys()
Get the set of all key values in the map.java.lang.Iterable<KeyValuePair>
keyValuePairs()
Get the set of all key-value pairs in the mapMapItem
remove(AtomicValue key)
Remove an entry from the mapint
size()
Get the size of the mapjava.lang.String
toString()
-
Methods inherited from class net.sf.saxon.ma.map.MapItem
atomize, call, effectiveBooleanValue, entries, getAnnotations, getArity, getFunctionName, getGenre, getItemTypeOfSequence, getOperandRoles, getTypedValue, getUnicodeStringValue, isArray, isKnownToConform, isMap, itemAt, makeNewContext, mapToString, 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.FunctionItem
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, iterate, reduce, subsequence
-
Methods inherited from interface net.sf.saxon.om.Sequence
makeRepeatable
-
-
-
-
Constructor Detail
-
RangeKey
public RangeKey(UnicodeString min, UnicodeString max, java.util.TreeMap<AtomicMatchKey,java.lang.Object> index)
-
-
Method Detail
-
get
public GroundedValue get(AtomicValue key)
Get an entry from the Map
-
size
public int size()
Get the size of the map
-
isEmpty
public boolean isEmpty()
Ask whether the map is empty
-
keys
public AtomicIterator keys()
Get the set of all key values in the map.
-
keyValuePairs
public java.lang.Iterable<KeyValuePair> keyValuePairs()
Get the set of all key-value pairs in the map- Specified by:
keyValuePairs
in classMapItem
- Returns:
- an iterator over the key-value pairs
-
remove
public MapItem remove(AtomicValue key)
Remove an entry from the map
-
getKeyUType
public UType getKeyUType()
Get the lowest common item type of the keys in the map- Specified by:
getKeyUType
in classMapItem
- Returns:
- the most specific type to which all the keys belong. If the map is empty, return ErrorType.getInstance() (the type with no instances)
-
addEntry
public MapItem addEntry(AtomicValue key, GroundedValue value)
Create a new map containing the existing entries in the map plus an additional entry, without modifying the original. If there is already an entry with the specified key, this entry is replaced by the new entry.
-
conforms
public boolean conforms(PlainType keyType, SequenceType valueType, TypeHierarchy th)
Ask whether the map conforms to a given map type
-
getItemType
public MapType getItemType(TypeHierarchy th)
Get the type of the map. This method is used largely for diagnostics, to report the type of a map when it differs from the required type.- Specified by:
getItemType
in classMapItem
- Parameters:
th
- the type hierarchy (not used)- Returns:
- the type of this map
-
getFunctionItemType
public MapType getFunctionItemType()
Get the item type of the function item- Specified by:
getFunctionItemType
in interfaceFunctionItem
- Overrides:
getFunctionItemType
in classMapItem
- Returns:
- the function item's type
-
getDescription
public java.lang.String getDescription()
Get a description of this function for use in error messages. For named functions, the description is the function name (as a lexical QName). For others, it might be, for example, "inline function", or "partially-applied ends-with function".- Specified by:
getDescription
in interfaceFunctionItem
- Overrides:
getDescription
in classMapItem
- Returns:
- a description of the function for use in error messages
-
deepEquals
public boolean deepEquals(FunctionItem other, XPathContext context, AtomicComparer comparer, int flags)
Test whether this FunctionItem is deep-equal to another function item, under the rules of the deep-equal function- Specified by:
deepEquals
in interfaceFunctionItem
- Overrides:
deepEquals
in classMapItem
- Parameters:
other
- the other function itemcontext
- the dynamic evaluation contextcomparer
- the object to perform the comparisonflags
- options for how the comparison is performed- Returns:
- true if the two function items are deep-equal
-
deepEqual40
public boolean deepEqual40(FunctionItem other, XPathContext context, DeepEqual.DeepEqualOptions options)
- Specified by:
deepEqual40
in interfaceFunctionItem
- Overrides:
deepEqual40
in classMapItem
-
export
public void export(ExpressionPresenter out) throws XPathException
Output information about this function item to the diagnostic explain() output- Specified by:
export
in interfaceFunctionItem
- Overrides:
export
in classMapItem
- Parameters:
out
- the destination for the information- Throws:
XPathException
- if things go wrong
-
isTrustedResultType
public boolean isTrustedResultType()
Description copied from interface:FunctionItem
Ask if the function can be trusted to return a result of the correct type- Specified by:
isTrustedResultType
in interfaceFunctionItem
- Overrides:
isTrustedResultType
in classMapItem
- Returns:
- true if the implementation can be trusted
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-