org.knowceans.map
Class PatternTreeMultiMap<X,Y>

java.lang.Object
  extended by java.util.AbstractMap<K,V>
      extended by java.util.TreeMap<X,java.util.Set<Y>>
          extended by org.knowceans.map.TreeMultiMap<X,Y>
              extended by org.knowceans.map.PatternTreeMultiMap<X,Y>
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.util.Map<X,java.util.Set<Y>>, java.util.NavigableMap<X,java.util.Set<Y>>, java.util.SortedMap<X,java.util.Set<Y>>, IMultiMap<X,Y>, IPatternMap<X,java.util.Set<Y>>

public class PatternTreeMultiMap<X,Y>
extends TreeMultiMap<X,Y>
implements IPatternMap<X,java.util.Set<Y>>

Implementation of the IMultiMap interface backed by a TreeMap. Maps a key to a Set of values and orders by the key's Comparator.

In relational terms, this class implements a m:n relation, but without reverse lookup.

This multimap supports wildcard and pattern search, however based on full iteration of the mapEntries. (TODO: put in better algorithm for wildcard expansion).

Author:
heinrich
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class java.util.AbstractMap
java.util.AbstractMap.SimpleEntry<K,V>, java.util.AbstractMap.SimpleImmutableEntry<K,V>
 
Nested classes/interfaces inherited from interface java.util.Map
java.util.Map.Entry<K,V>
 
Constructor Summary
PatternTreeMultiMap()
           
PatternTreeMultiMap(java.util.Comparator<? super X> c)
           
PatternTreeMultiMap(java.util.Map m)
           
 
Method Summary
 java.util.Hashtable<X,java.util.Set<Y>> getPattern(java.lang.String pattern)
          get all entries that match a specific pattern.
 java.util.Hashtable<X,java.util.Set<Y>> getWildcard(java.lang.String wildcard)
          return all entries that match a specific wildcard.
 boolean isPatternCaseInsensitive()
           
 boolean isPatternMustMatch()
           
static void main(java.lang.String[] args)
           
 void setPatternCaseInsensitive(boolean b)
           
 void setPatternMustMatch(boolean b)
           
 
Methods inherited from class org.knowceans.map.TreeMultiMap
add, put, remove
 
Methods inherited from class java.util.TreeMap
ceilingEntry, ceilingKey, clear, clone, comparator, containsKey, containsValue, descendingKeySet, descendingMap, entrySet, firstEntry, firstKey, floorEntry, floorKey, get, headMap, headMap, higherEntry, higherKey, keySet, lastEntry, lastKey, lowerEntry, lowerKey, navigableKeySet, pollFirstEntry, pollLastEntry, putAll, remove, size, subMap, subMap, tailMap, tailMap, values
 
Methods inherited from class java.util.AbstractMap
equals, hashCode, isEmpty, toString
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Map
clear, containsKey, containsValue, entrySet, equals, get, hashCode, isEmpty, keySet, putAll, remove, size, values
 

Constructor Detail

PatternTreeMultiMap

public PatternTreeMultiMap()

PatternTreeMultiMap

public PatternTreeMultiMap(java.util.Comparator<? super X> c)

PatternTreeMultiMap

public PatternTreeMultiMap(java.util.Map m)
Method Detail

main

public static void main(java.lang.String[] args)

getPattern

public java.util.Hashtable<X,java.util.Set<Y>> getPattern(java.lang.String pattern)
get all entries that match a specific pattern. This implementation uses complete iteration over all entries and returns a Hashtable

Specified by:
getPattern in interface IPatternMap<X,java.util.Set<Y>>
Parameters:
pattern -
Returns:

getWildcard

public java.util.Hashtable<X,java.util.Set<Y>> getWildcard(java.lang.String wildcard)
return all entries that match a specific wildcard.

Specified by:
getWildcard in interface IPatternMap<X,java.util.Set<Y>>
Returns:

isPatternCaseInsensitive

public boolean isPatternCaseInsensitive()
Returns:

isPatternMustMatch

public boolean isPatternMustMatch()
Returns:

setPatternCaseInsensitive

public void setPatternCaseInsensitive(boolean b)
Parameters:
b -

setPatternMustMatch

public void setPatternMustMatch(boolean b)
Parameters:
b -