Class MACAddressAssociativeTrie.MACAssociativeTrieNode<V>
- java.lang.Object
-
- inet.ipaddr.format.util.BinaryTreeNode<E>
-
- inet.ipaddr.format.util.AddressTrie.TrieNode<K>
-
- inet.ipaddr.format.util.AssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>
-
- inet.ipaddr.mac.MACAddressAssociativeTrie.MACAssociativeTrieNode<V>
-
- All Implemented Interfaces:
AddressTrieOps<MACAddress>,AddressTrieOps.AssociativeAddressTrieOps<MACAddress,V>,TreeOps<MACAddress>,java.io.Serializable,java.lang.Cloneable,java.lang.Iterable<MACAddress>,java.util.Map.Entry<MACAddress,V>
- Enclosing class:
- MACAddressAssociativeTrie<V>
public static class MACAddressAssociativeTrie.MACAssociativeTrieNode<V> extends AssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class inet.ipaddr.format.util.BinaryTreeNode
BinaryTreeNode.CachingIterator<N extends BinaryTreeNode<E>,E,C>
-
Nested classes/interfaces inherited from interface inet.ipaddr.format.util.AddressTrieOps
AddressTrieOps.AddressTrieAddOps<E extends Address>, AddressTrieOps.AssociativeAddressTrieOps<K extends Address,V>, AddressTrieOps.AssociativeAddressTriePutOps<K extends Address,V>
-
-
Constructor Summary
Constructors Constructor Description MACAssociativeTrieNode()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.Iterator<MACAddressAssociativeTrie.MACAssociativeTrieNode<V>>allNodeIterator(boolean forward)Iterates through all the nodes of the sub-tree with this node as the root, in forward or reverse tree order.java.util.Spliterator<MACAddressAssociativeTrie.MACAssociativeTrieNode<V>>allNodeSpliterator(boolean forward)Creates aSpliteratorover the nodes in forward or reverse natural tree order.MACAddressAssociativeTrie<V>asNewTrie()Creates a new sub-trie, copying the nodes starting with this node as root.java.util.Iterator<MACAddressAssociativeTrie.MACAssociativeTrieNode<V>>blockSizeAllNodeIterator(boolean lowerSubNodeFirst)Iterates all the nodes, ordered by keys from largest prefix blocks to smallest and then to individual addresses, in the sub-trie with this node as the root.<C> BinaryTreeNode.CachingIterator<MACAddressAssociativeTrie.MACAssociativeTrieNode<V>,MACAddress,C>blockSizeCachingAllNodeIterator()Iterates all nodes, ordered by keys from largest prefix blocks to smallest and then to individual addresses, in the sub-trie with this node as the root.java.util.Iterator<MACAddressAssociativeTrie.MACAssociativeTrieNode<V>>blockSizeNodeIterator(boolean lowerSubNodeFirst)Iterates the added nodes, ordered by keys from largest prefix blocks to smallest and then to individual addresses, in the sub-trie with this node as the root.MACAddressAssociativeTrie.MACAssociativeTrieNode<V>ceilingAddedNode(MACAddress addr)Returns the added node whose address is the lowest address greater than or equal to the given address.MACAddressAssociativeTrie.MACAssociativeTrieNode<V>clone()Clones the node.MACAddressAssociativeTrie.MACAssociativeTrieNode<V>cloneTree()Clones the subtrie starting with this node as root.java.util.Iterator<MACAddressAssociativeTrie.MACAssociativeTrieNode<V>>containedFirstAllNodeIterator(boolean forwardSubNodeOrder)Returns an iterator that does a post-order binary tree traversal.java.util.Iterator<MACAddressAssociativeTrie.MACAssociativeTrieNode<V>>containedFirstIterator(boolean forwardSubNodeOrder)Returns an iterator that does a post-order binary tree traversal of the added nodes.<C> BinaryTreeNode.CachingIterator<MACAddressAssociativeTrie.MACAssociativeTrieNode<V>,MACAddress,C>containingFirstAllNodeIterator(boolean forwardSubNodeOrder)Returns an iterator that does a pre-order binary tree traversal.java.util.Iterator<MACAddressAssociativeTrie.MACAssociativeTrieNode<V>>containingFirstIterator(boolean forwardSubNodeOrder)Returns an iterator that does a pre-order binary tree traversal of the added nodes.MACAddressAssociativeTrie.MACAssociativeTrieNode<V>elementsContainedBy(MACAddress addr)Checks if a part of this trie is contained by the given prefix block subnet or individual address.MACAddressAssociativeTrie.MACAssociativeTrieNode<V>elementsContaining(MACAddress addr)Finds the added subnets and/or addresses in the trie that contain the given individual address or prefix block subnet.booleanequals(java.lang.Object o)Returns whether the key and mapped value match those of the given nodeMACAddressAssociativeTrie.MACAssociativeTrieNode<V>firstAddedNode()Returns the first (lowest valued) added node in the sub-tree originating from this node, or null if there are no added entries in this tree or sub-treeMACAddressAssociativeTrie.MACAssociativeTrieNode<V>firstNode()Returns the first (lowest valued) node in the sub-tree originating from this node.MACAddressAssociativeTrie.MACAssociativeTrieNode<V>floorAddedNode(MACAddress addr)Returns the added node whose address is the highest address less than or equal to the given address.MACAddressAssociativeTrie.MACAssociativeTrieNode<V>getAddedNode(MACAddress addr)Gets trie nodes representing added elements.MACAddressAssociativeTrie.MACAssociativeTrieNode<V>getLowerSubNode()Returns the sub node whose address is smallest in valueMACAddressAssociativeTrie.MACAssociativeTrieNode<V>getNode(MACAddress addr)Gets the node corresponding to the given address, returns null if not such element exists.MACAddressAssociativeTrie.MACAssociativeTrieNode<V>getParent()Returns the node for the subnet block containing this node.MACAddressAssociativeTrie.MACAssociativeTrieNode<V>getUpperSubNode()Returns the sub-node whose address is largest in valueMACAddressAssociativeTrie.MACAssociativeTrieNode<V>higherAddedNode(MACAddress addr)Returns the added node whose address is the lowest address strictly greater than the given address.MACAddressAssociativeTrie.MACAssociativeTrieNode<V>lastAddedNode()Returns the last (highest valued) added node in the sub-tree originating from this node, or null if there are no added entries in this tree or sub-treeMACAddressAssociativeTrie.MACAssociativeTrieNode<V>lastNode()Returns the last (highest valued) node in the sub-tree originating from this node.MACAddressAssociativeTrie.MACAssociativeTrieNode<V>longestPrefixMatchNode(MACAddress addr)Finds the containing subnet or address in the trie with the smallest subnet size, which is equivalent to finding the subnet or address with the longest matching prefix.MACAddressAssociativeTrie.MACAssociativeTrieNode<V>lowerAddedNode(MACAddress addr)Returns the added node whose address is the highest address strictly less than the given address.MACAddressAssociativeTrie.MACAssociativeTrieNode<V>nextAddedNode()Returns the next node in the tree that is an added node, following the tree order, or null if there is no such node.MACAddressAssociativeTrie.MACAssociativeTrieNode<V>nextNode()Returns the node that follows this node following the tree orderjava.util.Iterator<MACAddressAssociativeTrie.MACAssociativeTrieNode<V>>nodeIterator(boolean forward)Iterates through the added nodes of the sub-tree with this node as the root, in forward or reverse tree order.java.util.Spliterator<MACAddressAssociativeTrie.MACAssociativeTrieNode<V>>nodeSpliterator(boolean forward)Creates aSpliteratorover the added nodes in forward or reverse natural tree order.MACAddressAssociativeTrie.MACAssociativeTrieNode<V>previousAddedNode()Returns the previous node in the tree that is an added node, following the tree order in reverse, or null if there is no such node.MACAddressAssociativeTrie.MACAssociativeTrieNode<V>previousNode()Returns the node that precedes this node following the tree order.MACAddressAssociativeTrie.MACAssociativeTrieNode<V>removeElementsContainedBy(MACAddress addr)Removes any single address or prefix block subnet from the trie that is contained in the given individual address or prefix block subnet.-
Methods inherited from class inet.ipaddr.format.util.AssociativeAddressTrie.AssociativeTrieNode
clearValue, get, getValue, hashCode, setValue, shortestPrefixMatchNode, toString
-
Methods inherited from class inet.ipaddr.format.util.AddressTrie.TrieNode
ceiling, contains, descendingSpliterator, elementContains, floor, higher, longestPrefixMatch, lower, remove, shortestPrefixMatch, spliterator
-
Methods inherited from class inet.ipaddr.format.util.BinaryTreeNode
clear, descendingIterator, getKey, isAdded, isEmpty, isLeaf, isRoot, iterator, nodeSize, remove, setAdded, size, toTreeString, treeEquals, treeHashCode
-
Methods inherited from interface inet.ipaddr.format.util.AddressTrieOps
ceiling, contains, elementContains, floor, higher, longestPrefixMatch, lower, remove, shortestPrefixMatch
-
Methods inherited from interface inet.ipaddr.format.util.TreeOps
descendingIterator, descendingSpliterator, iterator, spliterator
-
-
-
-
Method Detail
-
getUpperSubNode
public MACAddressAssociativeTrie.MACAssociativeTrieNode<V> getUpperSubNode()
Description copied from class:AddressTrie.TrieNodeReturns the sub-node whose address is largest in value- Overrides:
getUpperSubNodein classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Returns:
-
getLowerSubNode
public MACAddressAssociativeTrie.MACAssociativeTrieNode<V> getLowerSubNode()
Description copied from class:AddressTrie.TrieNodeReturns the sub node whose address is smallest in value- Overrides:
getLowerSubNodein classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Returns:
-
getParent
public MACAddressAssociativeTrie.MACAssociativeTrieNode<V> getParent()
Description copied from class:AddressTrie.TrieNodeReturns the node for the subnet block containing this node.- Overrides:
getParentin classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Returns:
-
removeElementsContainedBy
public MACAddressAssociativeTrie.MACAssociativeTrieNode<V> removeElementsContainedBy(MACAddress addr)
Description copied from interface:AddressTrieOpsRemoves any single address or prefix block subnet from the trie that is contained in the given individual address or prefix block subnet.Goes further than
AddressTrieOps.remove(Address), not requiring a match to an inserted node, and also removing all the sub-nodes of any removed node or sub-node.For example, after inserting 1.2.3.0 and 1.2.3.1, passing 1.2.3.0/31 to
AddressTrieOps.removeElementsContainedBy(Address)will remove them both, whileAddressTrieOps.remove(Address)will remove nothing. After inserting 1.2.3.0/31, then #remove(Address) will remove 1.2.3.0/31, but will leave 1.2.3.0 and 1.2.3.1 in the trie.It cannot partially delete a node, such as deleting a single address from a prefix block represented by a node. It can only delete the whole node if the whole address or block represented by that node is contained in the given address or block.
If the given address is not a single address nor prefix block, then this method throws IllegalArgumentException.
If not a single address nor prefix block, the
Partitionclass can be used to convert the address before calling this method. SeeAddressTrieOps.AddressTrieAddOps.add(Address)for more details.Returns the root node of the subtrie that was removed from the trie, or null if nothing was removed.
- Specified by:
removeElementsContainedByin interfaceAddressTrieOps<V>- Overrides:
removeElementsContainedByin classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Returns:
-
elementsContainedBy
public MACAddressAssociativeTrie.MACAssociativeTrieNode<V> elementsContainedBy(MACAddress addr)
Description copied from interface:AddressTrieOpsChecks if a part of this trie is contained by the given prefix block subnet or individual address.If the given address is not a single address nor prefix block, then this method throws IllegalArgumentException.
If not a single address nor prefix block, the
Partitionclass can be used to convert the address before calling this method. SeeAddressTrieOps.AddressTrieAddOps.add(Address)for more details.Returns the root node of the contained subtrie, or null if no subtrie is contained. The node returned need not be an "added" node, see
BinaryTreeNode.isAdded()for more details on added nodes. The returned subtrie is backed by this trie, so changes in this trie are reflected in those nodes and vice-versa.- Specified by:
elementsContainedByin interfaceAddressTrieOps<V>- Overrides:
elementsContainedByin classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Returns:
-
elementsContaining
public MACAddressAssociativeTrie.MACAssociativeTrieNode<V> elementsContaining(MACAddress addr)
Description copied from interface:AddressTrieOpsFinds the added subnets and/or addresses in the trie that contain the given individual address or prefix block subnet.If the given address is not a single address nor prefix block, then this method throws IllegalArgumentException.
If not a single address nor prefix block, the
Partitionclass can be used to convert the address before calling this method. SeeAddressTrieOps.AddressTrieAddOps.add(Address)for more details.Returns a list of the nodes for prefix block subnets and addresses from the trie that contain the address or block. The list consists only of added nodes, see
BinaryTreeNode.isAdded()for more details on added nodes. The list is constructed as a trie in which each parent node has only one sub-node.Use
AddressTrieOps.elementContains(Address)to check for the existence of a containing address.- Specified by:
elementsContainingin interfaceAddressTrieOps<V>- Overrides:
elementsContainingin classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Returns:
-
longestPrefixMatchNode
public MACAddressAssociativeTrie.MACAssociativeTrieNode<V> longestPrefixMatchNode(MACAddress addr)
Description copied from interface:AddressTrieOpsFinds the containing subnet or address in the trie with the smallest subnet size, which is equivalent to finding the subnet or address with the longest matching prefix. Returns the node corresponding to that subnet.If the given address is not a single address nor prefix block, then this method throws IllegalArgumentException.
If not a single address nor prefix block, the
Partitionclass can be used to convert the address before calling this method. SeeAddressTrieOps.AddressTrieAddOps.add(Address)for more details.Returns null if no added subnet or address contains the given argument.
Use
AddressTrieOps.elementContains(Address)to check for the existence of a containing address.
To get all the containing addresses, useAddressTrieOps.elementsContaining(Address).
UseAddressTrieOps.longestPrefixMatch(Address)to get the address corresponding to the result of this method.- Specified by:
longestPrefixMatchNodein interfaceAddressTrieOps<V>- Overrides:
longestPrefixMatchNodein classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Returns:
-
getAddedNode
public MACAddressAssociativeTrie.MACAssociativeTrieNode<V> getAddedNode(MACAddress addr)
Description copied from interface:AddressTrieOpsGets trie nodes representing added elements.Use
AddressTrieOps.contains(Address)to check for the existence of a given address in the trie, as well asAddressTrieOps.getNode(Address)to search for all nodes including those not-added but also auto-generated nodes for subnet blocks.- Specified by:
getAddedNodein interfaceAddressTrieOps<V>- Overrides:
getAddedNodein classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Returns:
-
getNode
public MACAddressAssociativeTrie.MACAssociativeTrieNode<V> getNode(MACAddress addr)
Description copied from interface:AddressTrieOpsGets the node corresponding to the given address, returns null if not such element exists.If added is true, returns only nodes representing added elements, otherwise returns any node, including a prefix block that was not added.
If the given address is not a single address nor prefix block, then this method throws IllegalArgumentException.
If not a single address nor prefix block, the
Partitionclass can be used to convert the address before calling this method. SeeAddressTrieOps.AddressTrieAddOps.add(Address)for more details.- Specified by:
getNodein interfaceAddressTrieOps<V>- Overrides:
getNodein classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Returns:
- See Also:
AddressTrieOps.contains(Address)
-
nodeIterator
public java.util.Iterator<MACAddressAssociativeTrie.MACAssociativeTrieNode<V>> nodeIterator(boolean forward)
Description copied from class:BinaryTreeNodeIterates through the added nodes of the sub-tree with this node as the root, in forward or reverse tree order.- Specified by:
nodeIteratorin interfaceAddressTrieOps<V>- Specified by:
nodeIteratorin interfaceTreeOps<V>- Overrides:
nodeIteratorin classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Parameters:
forward- if true, goes in ascending order, otherwise descending- Returns:
-
allNodeIterator
public java.util.Iterator<MACAddressAssociativeTrie.MACAssociativeTrieNode<V>> allNodeIterator(boolean forward)
Description copied from class:BinaryTreeNodeIterates through all the nodes of the sub-tree with this node as the root, in forward or reverse tree order.- Specified by:
allNodeIteratorin interfaceAddressTrieOps<V>- Specified by:
allNodeIteratorin interfaceTreeOps<V>- Overrides:
allNodeIteratorin classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Parameters:
forward- if true, goes in ascending order, otherwise descending- Returns:
-
blockSizeNodeIterator
public java.util.Iterator<MACAddressAssociativeTrie.MACAssociativeTrieNode<V>> blockSizeNodeIterator(boolean lowerSubNodeFirst)
Description copied from class:AddressTrie.TrieNodeIterates the added nodes, ordered by keys from largest prefix blocks to smallest and then to individual addresses, in the sub-trie with this node as the root.This iterator supports the
Iterator.remove()operation.- Overrides:
blockSizeNodeIteratorin classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Parameters:
lowerSubNodeFirst- if true, for blocks of equal size the lower is first, otherwise the reverse order- Returns:
-
blockSizeAllNodeIterator
public java.util.Iterator<MACAddressAssociativeTrie.MACAssociativeTrieNode<V>> blockSizeAllNodeIterator(boolean lowerSubNodeFirst)
Description copied from class:AddressTrie.TrieNodeIterates all the nodes, ordered by keys from largest prefix blocks to smallest and then to individual addresses, in the sub-trie with this node as the root.This iterator supports the
Iterator.remove()operation.- Overrides:
blockSizeAllNodeIteratorin classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Parameters:
lowerSubNodeFirst- if true, for blocks of equal size the lower is first, otherwise the reverse order- Returns:
-
blockSizeCachingAllNodeIterator
public <C> BinaryTreeNode.CachingIterator<MACAddressAssociativeTrie.MACAssociativeTrieNode<V>,MACAddress,C> blockSizeCachingAllNodeIterator()
Description copied from class:AddressTrie.TrieNodeIterates all nodes, ordered by keys from largest prefix blocks to smallest and then to individual addresses, in the sub-trie with this node as the root.- Overrides:
blockSizeCachingAllNodeIteratorin classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Returns:
-
containingFirstIterator
public java.util.Iterator<MACAddressAssociativeTrie.MACAssociativeTrieNode<V>> containingFirstIterator(boolean forwardSubNodeOrder)
Description copied from interface:TreeOpsReturns an iterator that does a pre-order binary tree traversal of the added nodes. All added nodes will be visited before their added sub-nodes. For an address trie this means added containing subnet blocks will be visited before their added contained addresses and subnet blocks.This iterator supports the
Iterator.remove()operation.See the docs for
TreeOpsfor more details on the ordering.- Specified by:
containingFirstIteratorin interfaceAddressTrieOps<V>- Specified by:
containingFirstIteratorin interfaceTreeOps<V>- Overrides:
containingFirstIteratorin classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Parameters:
forwardSubNodeOrder- if true, a left sub-node will be visited before the right sub-node of the same parent node.- Returns:
-
containingFirstAllNodeIterator
public <C> BinaryTreeNode.CachingIterator<MACAddressAssociativeTrie.MACAssociativeTrieNode<V>,MACAddress,C> containingFirstAllNodeIterator(boolean forwardSubNodeOrder)
Description copied from interface:TreeOpsReturns an iterator that does a pre-order binary tree traversal. All nodes will be visited before their sub-nodes. For an address trie this means containing subnet blocks will be visited before their contained addresses and subnet blocks.This iterator supports the
Iterator.remove()operation.Once a given node is visited, the iterator allows you to cache an object corresponding to the lower or upper sub-node that can be retrieved when you later visit that sub-node. That allows you to provide iteration context from a parent to its sub-nodes when iterating. The caching and retrieval is done in constant-time and linear space (proportional to tree size).
Here is an example showing usage of the caching. Consider this recursive code doing a pre-order traversal:
The following iterative code provides the same functionality:IPv6AddressTrie ipv6Tree = ...; visitRecursive(ipv6Tree.getRoot(), null); static <E> void visitRecursive(BinaryTreeNode<E> node, String direction) { if(direction == null) { direction = "root"; } System.out.println("visited " + direction + " " + node); BinaryTreeNode<E> sub = node.getLowerSubNode(); if(sub != null) { visitRecursive(sub, direction + " left"); } sub = node.getUpperSubNode(); if(sub != null) { visitRecursive(sub, direction + " right"); } }visitIterative(ipv6Tree.getRoot()); static <E> void visitIterative(BinaryTreeNode<E> node) { CachingIterator<? extends BinaryTreeNode<E>, E, String>iterator = node.containingFirstAllNodeIterator(true); while(iterator.hasNext()) { BinaryTreeNode<E> next = iterator.next(); String direction = iterator.getCached(); if(direction == null) { direction = "root"; } System.out.println("visited " + direction + " " + next); iterator.cacheWithLowerSubNode(direction + " left"); iterator.cacheWithUpperSubNode(direction + " right"); } }See
TreeOpsfor more details on the ordering.- Specified by:
containingFirstAllNodeIteratorin interfaceAddressTrieOps<V>- Specified by:
containingFirstAllNodeIteratorin interfaceTreeOps<V>- Overrides:
containingFirstAllNodeIteratorin classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Parameters:
forwardSubNodeOrder- if true, a left sub-node will be visited before the right sub-node of the same parent node.- Returns:
-
containedFirstIterator
public java.util.Iterator<MACAddressAssociativeTrie.MACAssociativeTrieNode<V>> containedFirstIterator(boolean forwardSubNodeOrder)
Description copied from interface:TreeOpsReturns an iterator that does a post-order binary tree traversal of the added nodes. All added sub-nodes will be visited before their parent nodes. For an address trie this means contained addresses and subnets will be visited before their containing subnet blocks.This iterator supports the
Iterator.remove()operation.See
TreeOpsfor more details on the ordering.- Specified by:
containedFirstIteratorin interfaceAddressTrieOps<V>- Specified by:
containedFirstIteratorin interfaceTreeOps<V>- Overrides:
containedFirstIteratorin classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Parameters:
forwardSubNodeOrder- if true, a left sub-node will be visited before the right sub-node of the same parent node.- Returns:
-
containedFirstAllNodeIterator
public java.util.Iterator<MACAddressAssociativeTrie.MACAssociativeTrieNode<V>> containedFirstAllNodeIterator(boolean forwardSubNodeOrder)
Description copied from interface:TreeOpsReturns an iterator that does a post-order binary tree traversal. All sub-nodes will be visited before their parent nodes. For an address trie this means contained addresses and subnets will be visited before their containing subnet blocks.This iterator does not support the
Iterator.remove()operation. IfIterator.remove()is called it will throwUnsupportedOperationException.See
TreeOpsfor more details on the ordering.- Specified by:
containedFirstAllNodeIteratorin interfaceAddressTrieOps<V>- Specified by:
containedFirstAllNodeIteratorin interfaceTreeOps<V>- Overrides:
containedFirstAllNodeIteratorin classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Parameters:
forwardSubNodeOrder- if true, a left sub-node will be visited before the right sub-node of the same parent node.- Returns:
-
nodeSpliterator
public java.util.Spliterator<MACAddressAssociativeTrie.MACAssociativeTrieNode<V>> nodeSpliterator(boolean forward)
Description copied from interface:TreeOpsCreates aSpliteratorover the added nodes in forward or reverse natural tree order.See
TreeOpsfor more details on the ordering.- Specified by:
nodeSpliteratorin interfaceAddressTrieOps<V>- Specified by:
nodeSpliteratorin interfaceTreeOps<V>- Overrides:
nodeSpliteratorin classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Parameters:
forward- if true, goes in ascending order, otherwise descending- Returns:
-
allNodeSpliterator
public java.util.Spliterator<MACAddressAssociativeTrie.MACAssociativeTrieNode<V>> allNodeSpliterator(boolean forward)
Description copied from interface:TreeOpsCreates aSpliteratorover the nodes in forward or reverse natural tree order.See
TreeOpsfor more details on the ordering.- Specified by:
allNodeSpliteratorin interfaceAddressTrieOps<V>- Specified by:
allNodeSpliteratorin interfaceTreeOps<V>- Overrides:
allNodeSpliteratorin classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Parameters:
forward- if true, goes in ascending order, otherwise descending- Returns:
-
previousAddedNode
public MACAddressAssociativeTrie.MACAssociativeTrieNode<V> previousAddedNode()
Description copied from class:BinaryTreeNodeReturns the previous node in the tree that is an added node, following the tree order in reverse, or null if there is no such node.- Overrides:
previousAddedNodein classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Returns:
-
nextAddedNode
public MACAddressAssociativeTrie.MACAssociativeTrieNode<V> nextAddedNode()
Description copied from class:BinaryTreeNodeReturns the next node in the tree that is an added node, following the tree order, or null if there is no such node.- Overrides:
nextAddedNodein classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Returns:
-
nextNode
public MACAddressAssociativeTrie.MACAssociativeTrieNode<V> nextNode()
Description copied from class:BinaryTreeNodeReturns the node that follows this node following the tree order- Overrides:
nextNodein classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Returns:
-
previousNode
public MACAddressAssociativeTrie.MACAssociativeTrieNode<V> previousNode()
Description copied from class:BinaryTreeNodeReturns the node that precedes this node following the tree order.- Overrides:
previousNodein classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Returns:
-
lowerAddedNode
public MACAddressAssociativeTrie.MACAssociativeTrieNode<V> lowerAddedNode(MACAddress addr)
Description copied from interface:AddressTrieOpsReturns the added node whose address is the highest address strictly less than the given address.- Specified by:
lowerAddedNodein interfaceAddressTrieOps<V>- Overrides:
lowerAddedNodein classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Returns:
-
floorAddedNode
public MACAddressAssociativeTrie.MACAssociativeTrieNode<V> floorAddedNode(MACAddress addr)
Description copied from interface:AddressTrieOpsReturns the added node whose address is the highest address less than or equal to the given address.- Specified by:
floorAddedNodein interfaceAddressTrieOps<V>- Overrides:
floorAddedNodein classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Returns:
-
higherAddedNode
public MACAddressAssociativeTrie.MACAssociativeTrieNode<V> higherAddedNode(MACAddress addr)
Description copied from interface:AddressTrieOpsReturns the added node whose address is the lowest address strictly greater than the given address.- Specified by:
higherAddedNodein interfaceAddressTrieOps<V>- Overrides:
higherAddedNodein classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Returns:
-
ceilingAddedNode
public MACAddressAssociativeTrie.MACAssociativeTrieNode<V> ceilingAddedNode(MACAddress addr)
Description copied from interface:AddressTrieOpsReturns the added node whose address is the lowest address greater than or equal to the given address.- Specified by:
ceilingAddedNodein interfaceAddressTrieOps<V>- Overrides:
ceilingAddedNodein classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Returns:
-
firstNode
public MACAddressAssociativeTrie.MACAssociativeTrieNode<V> firstNode()
Description copied from class:BinaryTreeNodeReturns the first (lowest valued) node in the sub-tree originating from this node.- Specified by:
firstNodein interfaceAddressTrieOps<V>- Overrides:
firstNodein classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Returns:
-
lastNode
public MACAddressAssociativeTrie.MACAssociativeTrieNode<V> lastNode()
Description copied from class:BinaryTreeNodeReturns the last (highest valued) node in the sub-tree originating from this node.- Specified by:
lastNodein interfaceAddressTrieOps<V>- Overrides:
lastNodein classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Returns:
-
firstAddedNode
public MACAddressAssociativeTrie.MACAssociativeTrieNode<V> firstAddedNode()
Description copied from class:BinaryTreeNodeReturns the first (lowest valued) added node in the sub-tree originating from this node, or null if there are no added entries in this tree or sub-tree- Specified by:
firstAddedNodein interfaceAddressTrieOps<V>- Overrides:
firstAddedNodein classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Returns:
-
lastAddedNode
public MACAddressAssociativeTrie.MACAssociativeTrieNode<V> lastAddedNode()
Description copied from class:BinaryTreeNodeReturns the last (highest valued) added node in the sub-tree originating from this node, or null if there are no added entries in this tree or sub-tree- Specified by:
lastAddedNodein interfaceAddressTrieOps<V>- Overrides:
lastAddedNodein classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>- Returns:
-
asNewTrie
public MACAddressAssociativeTrie<V> asNewTrie()
Description copied from class:AddressTrie.TrieNodeCreates a new sub-trie, copying the nodes starting with this node as root. The nodes are copies of the nodes in this sub-trie, but their keys and values are not copies.- Overrides:
asNewTriein classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>
-
cloneTree
public MACAddressAssociativeTrie.MACAssociativeTrieNode<V> cloneTree()
Description copied from class:AssociativeAddressTrie.AssociativeTrieNodeClones the subtrie starting with this node as root. The nodes are cloned, the keys and values are not cloned.- Overrides:
cloneTreein classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>
-
clone
public MACAddressAssociativeTrie.MACAssociativeTrieNode<V> clone()
Description copied from class:AssociativeAddressTrie.AssociativeTrieNodeClones the node. Keys and values are not cloned, but parent node, lower and upper sub-nodes, are all set to null.- Overrides:
clonein classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>
-
equals
public boolean equals(java.lang.Object o)
Description copied from class:AssociativeAddressTrie.AssociativeTrieNodeReturns whether the key and mapped value match those of the given node- Specified by:
equalsin interfacejava.util.Map.Entry<MACAddress,V>- Overrides:
equalsin classAssociativeAddressTrie.AssociativeTrieNode<MACAddress,V>
-
-