org.omnaest.utils.structure.map
Class LinkedHashDualMap<FIRSTELEMENT,SECONDELEMENT>

java.lang.Object
  extended by org.omnaest.utils.structure.map.LinkedHashDualMap<FIRSTELEMENT,SECONDELEMENT>
Type Parameters:
FIRSTELEMENT -
SECONDELEMENT -
All Implemented Interfaces:
DualMap<FIRSTELEMENT,SECONDELEMENT>

public class LinkedHashDualMap<FIRSTELEMENT,SECONDELEMENT>
extends Object
implements DualMap<FIRSTELEMENT,SECONDELEMENT>

Dual map implementation which makes use of two LinkedHashMap instances to get an index on both elements.

Author:
Omnaest

Field Summary
protected  Map<FIRSTELEMENT,SECONDELEMENT> firstElementToSecondElementMap
           
protected  Map<SECONDELEMENT,FIRSTELEMENT> secondElementToFirstElementMap
           
 
Constructor Summary
LinkedHashDualMap()
           
 
Method Summary
 void clear()
          Clears the indexes.
 boolean contains(Object element)
          Returns true, if the element is contained in one of the two indexes.
 boolean containsFirstElement(FIRSTELEMENT firstElement)
          Returns true, if the element is contained in one of the two indexes.
 boolean containsSecondElement(SECONDELEMENT secondElement)
          Returns true, if the element is contained in one of the two indexes.
 FIRSTELEMENT getFirstElementBy(SECONDELEMENT secondElement)
          Returns the first element resolved by the second element.
 List<FIRSTELEMENT> getFirstElementList()
           
 Map<FIRSTELEMENT,SECONDELEMENT> getFirstElementToSecondElementMap()
          Returns a new Map instance.
 SECONDELEMENT getSecondElementBy(FIRSTELEMENT firstElement)
          Returns the second element resolved by the first element.
 List<SECONDELEMENT> getSecondElementList()
           
 Map<SECONDELEMENT,FIRSTELEMENT> getSecondElementToFirstElementMap()
          Returns a new Map instance.
 boolean isEmpty()
          Returns true, if both indexes are empty.
 DualMap<FIRSTELEMENT,SECONDELEMENT> put(FIRSTELEMENT firstElement, SECONDELEMENT secondElement)
          Puts a two elements into the DualMap
 DualMap<FIRSTELEMENT,SECONDELEMENT> putAll(DualMap<? extends FIRSTELEMENT,? extends SECONDELEMENT> firstElementAndSecondElementDualMap)
           
 DualMap<FIRSTELEMENT,SECONDELEMENT> putAllFirstElementToSecondElement(Map<? extends FIRSTELEMENT,? extends SECONDELEMENT> firstElementToSecondElementMap)
           
 DualMap<FIRSTELEMENT,SECONDELEMENT> putAllSecondElementToFirstElement(Map<? extends SECONDELEMENT,? extends FIRSTELEMENT> secondElementToFirstElementMap)
           
 void removeFirstElement(FIRSTELEMENT firstElement)
          Removes the given first element from the first index and the resolved second element from the second index.
 void removeSecondElement(SECONDELEMENT secondElement)
          Removes the given second element from the second index and the resolved first element from the first index.
 int size()
          Returns the size of the larger index
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

firstElementToSecondElementMap

protected Map<FIRSTELEMENT,SECONDELEMENT> firstElementToSecondElementMap

secondElementToFirstElementMap

protected Map<SECONDELEMENT,FIRSTELEMENT> secondElementToFirstElementMap
Constructor Detail

LinkedHashDualMap

public LinkedHashDualMap()
Method Detail

clear

public void clear()
Description copied from interface: DualMap
Clears the indexes.

Specified by:
clear in interface DualMap<FIRSTELEMENT,SECONDELEMENT>

contains

public boolean contains(Object element)
Description copied from interface: DualMap
Returns true, if the element is contained in one of the two indexes.

Specified by:
contains in interface DualMap<FIRSTELEMENT,SECONDELEMENT>
Returns:

containsFirstElement

public boolean containsFirstElement(FIRSTELEMENT firstElement)
Description copied from interface: DualMap
Returns true, if the element is contained in one of the two indexes.

Specified by:
containsFirstElement in interface DualMap<FIRSTELEMENT,SECONDELEMENT>
Returns:

containsSecondElement

public boolean containsSecondElement(SECONDELEMENT secondElement)
Description copied from interface: DualMap
Returns true, if the element is contained in one of the two indexes.

Specified by:
containsSecondElement in interface DualMap<FIRSTELEMENT,SECONDELEMENT>
Returns:

isEmpty

public boolean isEmpty()
Description copied from interface: DualMap
Returns true, if both indexes are empty.

Specified by:
isEmpty in interface DualMap<FIRSTELEMENT,SECONDELEMENT>
Returns:

getFirstElementList

public List<FIRSTELEMENT> getFirstElementList()
Specified by:
getFirstElementList in interface DualMap<FIRSTELEMENT,SECONDELEMENT>
Returns:
See Also:
DualMap.getFirstElementToSecondElementMap(), DualMap.getSecondElementList()

getSecondElementList

public List<SECONDELEMENT> getSecondElementList()
Specified by:
getSecondElementList in interface DualMap<FIRSTELEMENT,SECONDELEMENT>
Returns:
See Also:
DualMap.getSecondElementToFirstElementMap(), DualMap.getFirstElementList()

put

public DualMap<FIRSTELEMENT,SECONDELEMENT> put(FIRSTELEMENT firstElement,
                                               SECONDELEMENT secondElement)
Description copied from interface: DualMap
Puts a two elements into the DualMap

Specified by:
put in interface DualMap<FIRSTELEMENT,SECONDELEMENT>
Returns:
this

removeFirstElement

public void removeFirstElement(FIRSTELEMENT firstElement)
Description copied from interface: DualMap
Removes the given first element from the first index and the resolved second element from the second index.

Specified by:
removeFirstElement in interface DualMap<FIRSTELEMENT,SECONDELEMENT>

removeSecondElement

public void removeSecondElement(SECONDELEMENT secondElement)
Description copied from interface: DualMap
Removes the given second element from the second index and the resolved first element from the first index.

Specified by:
removeSecondElement in interface DualMap<FIRSTELEMENT,SECONDELEMENT>

size

public int size()
Description copied from interface: DualMap
Returns the size of the larger index

Specified by:
size in interface DualMap<FIRSTELEMENT,SECONDELEMENT>
Returns:

getFirstElementToSecondElementMap

public Map<FIRSTELEMENT,SECONDELEMENT> getFirstElementToSecondElementMap()
Description copied from interface: DualMap
Returns a new Map instance.

Specified by:
getFirstElementToSecondElementMap in interface DualMap<FIRSTELEMENT,SECONDELEMENT>
Returns:
See Also:
DualMap.getSecondElementToFirstElementMap(), DualMap.getSecondElementList()

getSecondElementToFirstElementMap

public Map<SECONDELEMENT,FIRSTELEMENT> getSecondElementToFirstElementMap()
Description copied from interface: DualMap
Returns a new Map instance.

Specified by:
getSecondElementToFirstElementMap in interface DualMap<FIRSTELEMENT,SECONDELEMENT>
Returns:
See Also:
DualMap.getFirstElementToSecondElementMap(), DualMap.getFirstElementList()

putAll

public DualMap<FIRSTELEMENT,SECONDELEMENT> putAll(DualMap<? extends FIRSTELEMENT,? extends SECONDELEMENT> firstElementAndSecondElementDualMap)
Specified by:
putAll in interface DualMap<FIRSTELEMENT,SECONDELEMENT>
Returns:
this
See Also:
DualMap.put(Object, Object), DualMap.putAllFirstElementToSecondElement(Map), DualMap.putAllSecondElementToFirstElement(Map)

putAllFirstElementToSecondElement

public DualMap<FIRSTELEMENT,SECONDELEMENT> putAllFirstElementToSecondElement(Map<? extends FIRSTELEMENT,? extends SECONDELEMENT> firstElementToSecondElementMap)
Specified by:
putAllFirstElementToSecondElement in interface DualMap<FIRSTELEMENT,SECONDELEMENT>
Returns:
this
See Also:
DualMap.putAll(DualMap), DualMap.putAllSecondElementToFirstElement(Map)

putAllSecondElementToFirstElement

public DualMap<FIRSTELEMENT,SECONDELEMENT> putAllSecondElementToFirstElement(Map<? extends SECONDELEMENT,? extends FIRSTELEMENT> secondElementToFirstElementMap)
Specified by:
putAllSecondElementToFirstElement in interface DualMap<FIRSTELEMENT,SECONDELEMENT>
Returns:
this
See Also:
DualMap.putAll(DualMap), DualMap.putAllFirstElementToSecondElement(Map)

getFirstElementBy

public FIRSTELEMENT getFirstElementBy(SECONDELEMENT secondElement)
Description copied from interface: DualMap
Returns the first element resolved by the second element.

Specified by:
getFirstElementBy in interface DualMap<FIRSTELEMENT,SECONDELEMENT>
Returns:
See Also:
DualMap.getSecondElementBy(Object)

getSecondElementBy

public SECONDELEMENT getSecondElementBy(FIRSTELEMENT firstElement)
Description copied from interface: DualMap
Returns the second element resolved by the first element.

Specified by:
getSecondElementBy in interface DualMap<FIRSTELEMENT,SECONDELEMENT>
Returns:
See Also:
DualMap.getFirstElementBy(Object)


Copyright © 2011. All Rights Reserved.