- java.lang.Object
-
- inet.ipaddr.format.util.BaseDualIPv4v6Tries<IPv4AddressAssociativeTrie<V>,IPv6AddressAssociativeTrie<V>>
-
- inet.ipaddr.format.util.DualIPv4v6AssociativeTries<V>
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,java.lang.Iterable<IPAddress>
public class DualIPv4v6AssociativeTries<V> extends BaseDualIPv4v6Tries<IPv4AddressAssociativeTrie<V>,IPv6AddressAssociativeTrie<V>>
Combines an IPv4 with an IPv6 associative trie to map both IPv4 and IPv6 addresses and prefix blocks. For a tree that is either IPv4 or IPv6, one or the other, you can just use #AssociativeAddressTrie
. Another alternative to this data structure is to use a single IPv6 trie, while mapping IPv4 addresses to IPv6 with the default IPv4-mapped address mapping, or some other mapping.- Author:
- scfoley
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
DualIPv4v6AssociativeTries.TriBoolFunction<T,U,R>
-
Constructor Summary
Constructors Constructor Description DualIPv4v6AssociativeTries()
DualIPv4v6AssociativeTries(IPv4AddressAssociativeTrie<V> ipv4Trie, IPv6AddressAssociativeTrie<V> ipv6Trie)
-
Method Summary
-
Methods inherited from class inet.ipaddr.format.util.BaseDualIPv4v6Tries
add, ceiling, contains, descendingIterator, descendingSpliterator, elementContains, equals, floor, higher, isEmpty, iterator, longestPrefixMatch, lower, remove, size, spliterator, toString
-
-
-
-
Constructor Detail
-
DualIPv4v6AssociativeTries
public DualIPv4v6AssociativeTries()
-
DualIPv4v6AssociativeTries
public DualIPv4v6AssociativeTries(IPv4AddressAssociativeTrie<V> ipv4Trie, IPv6AddressAssociativeTrie<V> ipv6Trie)
-
-
Method Detail
-
clone
public DualIPv4v6AssociativeTries<V> clone()
- Overrides:
clone
in classBaseDualIPv4v6Tries<IPv4AddressAssociativeTrie<V>,IPv6AddressAssociativeTrie<V>>
-
getIPv4Trie
public IPv4AddressAssociativeTrie<V> getIPv4Trie()
Description copied from class:BaseDualIPv4v6Tries
returns the contained IPv4 trie- Specified by:
getIPv4Trie
in classBaseDualIPv4v6Tries<IPv4AddressAssociativeTrie<V>,IPv6AddressAssociativeTrie<V>>
- Returns:
-
getIPv6Trie
public IPv6AddressAssociativeTrie<V> getIPv6Trie()
Description copied from class:BaseDualIPv4v6Tries
returns the contained IPv6 trie- Specified by:
getIPv6Trie
in classBaseDualIPv4v6Tries<IPv4AddressAssociativeTrie<V>,IPv6AddressAssociativeTrie<V>>
- Returns:
-
elementsContaining
public AssociativeAddressTrie.AssociativeTrieNode<? extends IPAddress,V> elementsContaining(IPAddress addr)
- Overrides:
elementsContaining
in classBaseDualIPv4v6Tries<IPv4AddressAssociativeTrie<V>,IPv6AddressAssociativeTrie<V>>
-
elementsContainedBy
public AssociativeAddressTrie.AssociativeTrieNode<? extends IPAddress,V> elementsContainedBy(IPAddress addr)
- Overrides:
elementsContainedBy
in classBaseDualIPv4v6Tries<IPv4AddressAssociativeTrie<V>,IPv6AddressAssociativeTrie<V>>
-
removeElementsContainedBy
public AssociativeAddressTrie.AssociativeTrieNode<? extends IPAddress,V> removeElementsContainedBy(IPAddress addr)
- Overrides:
removeElementsContainedBy
in classBaseDualIPv4v6Tries<IPv4AddressAssociativeTrie<V>,IPv6AddressAssociativeTrie<V>>
-
getAddedNode
public AssociativeAddressTrie.AssociativeTrieNode<? extends IPAddress,V> getAddedNode(IPAddress addr)
- Overrides:
getAddedNode
in classBaseDualIPv4v6Tries<IPv4AddressAssociativeTrie<V>,IPv6AddressAssociativeTrie<V>>
-
longestPrefixMatchNode
public AssociativeAddressTrie.AssociativeTrieNode<? extends IPAddress,V> longestPrefixMatchNode(IPAddress addr)
- Overrides:
longestPrefixMatchNode
in classBaseDualIPv4v6Tries<IPv4AddressAssociativeTrie<V>,IPv6AddressAssociativeTrie<V>>
-
addNode
public AssociativeAddressTrie.AssociativeTrieNode<? extends IPAddress,V> addNode(IPAddress addr)
- Overrides:
addNode
in classBaseDualIPv4v6Tries<IPv4AddressAssociativeTrie<V>,IPv6AddressAssociativeTrie<V>>
-
addTrie
public AssociativeAddressTrie.AssociativeTrieNode<? extends IPAddress,V> addTrie(AddressTrie.TrieNode<? extends IPAddress> trie)
- Overrides:
addTrie
in classBaseDualIPv4v6Tries<IPv4AddressAssociativeTrie<V>,IPv6AddressAssociativeTrie<V>>
-
floorAddedNode
public AssociativeAddressTrie.AssociativeTrieNode<? extends IPAddress,V> floorAddedNode(IPAddress addr)
- Overrides:
floorAddedNode
in classBaseDualIPv4v6Tries<IPv4AddressAssociativeTrie<V>,IPv6AddressAssociativeTrie<V>>
-
lowerAddedNode
public AssociativeAddressTrie.AssociativeTrieNode<? extends IPAddress,V> lowerAddedNode(IPAddress addr)
- Overrides:
lowerAddedNode
in classBaseDualIPv4v6Tries<IPv4AddressAssociativeTrie<V>,IPv6AddressAssociativeTrie<V>>
-
ceilingAddedNode
public AssociativeAddressTrie.AssociativeTrieNode<? extends IPAddress,V> ceilingAddedNode(IPAddress addr)
- Overrides:
ceilingAddedNode
in classBaseDualIPv4v6Tries<IPv4AddressAssociativeTrie<V>,IPv6AddressAssociativeTrie<V>>
-
higherAddedNode
public AssociativeAddressTrie.AssociativeTrieNode<? extends IPAddress,V> higherAddedNode(IPAddress addr)
- Overrides:
higherAddedNode
in classBaseDualIPv4v6Tries<IPv4AddressAssociativeTrie<V>,IPv6AddressAssociativeTrie<V>>
-
nodeIterator
public java.util.Iterator<AssociativeAddressTrie.AssociativeTrieNode<? extends IPAddress,V>> nodeIterator(boolean forward)
- Specified by:
nodeIterator
in classBaseDualIPv4v6Tries<IPv4AddressAssociativeTrie<V>,IPv6AddressAssociativeTrie<V>>
-
containingFirstIterator
public java.util.Iterator<AssociativeAddressTrie.AssociativeTrieNode<? extends IPAddress,V>> containingFirstIterator(boolean forwardSubNodeOrder)
- Specified by:
containingFirstIterator
in classBaseDualIPv4v6Tries<IPv4AddressAssociativeTrie<V>,IPv6AddressAssociativeTrie<V>>
-
containedFirstIterator
public java.util.Iterator<AssociativeAddressTrie.AssociativeTrieNode<? extends IPAddress,V>> containedFirstIterator(boolean forwardSubNodeOrder)
- Specified by:
containedFirstIterator
in classBaseDualIPv4v6Tries<IPv4AddressAssociativeTrie<V>,IPv6AddressAssociativeTrie<V>>
-
blockSizeNodeIterator
public java.util.Iterator<AssociativeAddressTrie.AssociativeTrieNode<? extends IPAddress,V>> blockSizeNodeIterator(boolean lowerSubNodeFirst)
- Specified by:
blockSizeNodeIterator
in classBaseDualIPv4v6Tries<IPv4AddressAssociativeTrie<V>,IPv6AddressAssociativeTrie<V>>
-
nodeSpliterator
public java.util.Spliterator<AssociativeAddressTrie.AssociativeTrieNode<? extends IPAddress,V>> nodeSpliterator(boolean forward)
- Specified by:
nodeSpliterator
in classBaseDualIPv4v6Tries<IPv4AddressAssociativeTrie<V>,IPv6AddressAssociativeTrie<V>>
-
addTrie
public AssociativeAddressTrie.AssociativeTrieNode<? extends IPAddress,V> addTrie(AssociativeAddressTrie.AssociativeTrieNode<? extends IPAddress,V> trie)
-
putNode
public AssociativeAddressTrie.AssociativeTrieNode<? extends IPAddress,V> putNode(IPAddress addr, V value)
-
putTrie
public AssociativeAddressTrie.AssociativeTrieNode<? extends IPAddress,V> putTrie(AssociativeAddressTrie.AssociativeTrieNode<? extends IPAddress,V> trie)
-
remap
public AssociativeAddressTrie.AssociativeTrieNode<? extends IPAddress,V> remap(IPAddress addr, java.util.function.Function<? super V,? extends V> remapper)
-
remapIfAbsent
public AssociativeAddressTrie.AssociativeTrieNode<? extends IPAddress,V> remapIfAbsent(IPAddress addr, java.util.function.Supplier<? extends V> remapper, boolean insertNull)
-
-