Package net.sf.saxon.ma.map
Class HashTrieMap
java.lang.Object
net.sf.saxon.ma.map.MapItem
net.sf.saxon.ma.map.HashTrieMap
- All Implemented Interfaces:
- Callable,- FunctionItem,- GroundedValue,- Item,- Sequence
An immutable map. This implementation, which uses a hash trie, was introduced in Saxon 9.6
- 
Constructor SummaryConstructorsConstructorDescriptionCreate an empty mapCreate a map whose contents are a copy of an existing immutable map
- 
Method SummaryModifier and TypeMethodDescriptionaddEntry(AtomicValue key, GroundedValue value) Create a new map containing the existing entries in the map plus an additional entry, without modifying the original.booleanconforms(PlainType requiredKeyType, SequenceType requiredValueType, TypeHierarchy th) Ask whether the map conforms to a given map typestatic HashTrieMapCreate a map whose entries are copies of the entries in an existing MapItemvoidget(AtomicValue key) Get an entry from the MapGet the type of the map.Get the lowest common item type of the keys in the mapGet an key/value pair from the MapbooleaninitialPut(AtomicValue key, GroundedValue value) Add a new entry to this map.booleanisEmpty()Ask whether the map is emptykeys()Get the set of all key values in the mapGet the set of all key-value pairs in the mapremove(AtomicValue key) Remove an entry from the mapstatic HashTrieMapsingleton(AtomicValue key, GroundedValue value) Create a singleton map with a single key and valueintsize()Get the size of the maptoString()Methods inherited from class net.sf.saxon.ma.map.MapItematomize, call, deepEqual40, deepEquals, effectiveBooleanValue, entries, export, getAnnotations, getArity, getDescription, getFunctionItemType, getFunctionName, getGenre, getItemTypeOfSequence, getOperandRoles, getTypedValue, getUnicodeStringValue, isArray, isKnownToConform, isMap, isTrustedResultType, itemAt, makeNewContext, mapToString, toShortStringMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface net.sf.saxon.om.FunctionItemisSequenceVariadicMethods inherited from interface net.sf.saxon.om.GroundedValueasIterable, concatenate, containsNode, materializeMethods inherited from interface net.sf.saxon.om.ItemgetLength, getStringValue, head, isStreamed, iterate, reduce, subsequenceMethods inherited from interface net.sf.saxon.om.SequencemakeRepeatable
- 
Constructor Details- 
HashTrieMappublic HashTrieMap()Create an empty map
- 
HashTrieMapCreate a map whose contents are a copy of an existing immutable map- Parameters:
- imap- the map to be copied
 
 
- 
- 
Method Details- 
singletonCreate a singleton map with a single key and value- Parameters:
- key- the key value
- value- the associated value
- Returns:
- a singleton map
 
- 
copyCreate a map whose entries are copies of the entries in an existing MapItem- Parameters:
- map- the existing map to be copied
- Returns:
- the new map
 
- 
sizepublic int size()Get the size of the map
- 
isEmptypublic boolean isEmpty()Ask whether the map is empty
- 
conformspublic boolean conforms(PlainType requiredKeyType, SequenceType requiredValueType, TypeHierarchy th) Ask whether the map conforms to a given map type
- 
getItemTypeGet 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. This method has the side-effect of updating the internal type information held within the map.- Specified by:
- getItemTypein class- MapItem
- Parameters:
- th- The type hierarchy cache for the configuration
- Returns:
- the type of this map
 
- 
getKeyUTypeGet the lowest common item type of the keys in the map- Specified by:
- getKeyUTypein class- MapItem
- Returns:
- the most specific type to which all the keys belong. If the map is empty, return UType.VOID (the type with no instances)
 
- 
addEntryCreate 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.
- 
initialPutAdd a new entry to this map. Since the map is supposed to be immutable, this method must only be called while initially populating the map, and must not be called if anyone else might already be using the map.- Parameters:
- key- the key of the new entry. Any existing entry with this key is replaced.
- value- the value associated with the new entry
- Returns:
- true if an existing entry with the same key was replaced
 
- 
removeRemove an entry from the map
- 
getGet an entry from the Map
- 
getKeyValuePairGet an key/value pair from the Map- Parameters:
- key- the value of the key
- Returns:
- the key-value-pair associated with the given key, or null if the key is not present in the map
 
- 
keysGet the set of all key values in the map
- 
keyValuePairsGet the set of all key-value pairs in the map- Specified by:
- keyValuePairsin class- MapItem
- Returns:
- an iterator over the key-value pairs
 
- 
diagnosticDumppublic void diagnosticDump()
- 
toString
 
-