org.simantics.databoard.binding.impl
Class HashMapBinding

java.lang.Object
  extended by org.simantics.databoard.binding.Binding
      extended by org.simantics.databoard.binding.MapBinding
          extended by org.simantics.databoard.binding.impl.HashMapBinding
All Implemented Interfaces:
java.util.Comparator<java.lang.Object>

public class HashMapBinding
extends MapBinding

Binds Databoard's MapType to java.util.Map and instantiates java.util.HashMap. HashMapBinding has a very poor performance. This operations cannot be performed with map operations because HashMap doesn't support exterior comparator which is required. TODO This could be optimized by inquiring whether the Key is Comparable

Author:
Toni Kalajainen

Nested Class Summary
 
Nested classes/interfaces inherited from class org.simantics.databoard.binding.Binding
Binding.Visitor<T>, Binding.Visitor1
 
Constructor Summary
HashMapBinding(Binding keyBinding, Binding valueBinding)
           
HashMapBinding(MapType mapType, Binding keyBinding, Binding valueBinding)
           
 
Method Summary
 void clear(java.lang.Object map)
           
 boolean containsKey(java.lang.Object map, java.lang.Object key)
           
 boolean containsValue(java.lang.Object map, java.lang.Object value)
           
 int count(java.lang.Object src, java.lang.Object from, boolean fromInclusive, java.lang.Object end, boolean endInclusive)
          Count the number of entries between two keyes
 java.lang.Object create()
           
 java.lang.Object create(java.util.List<java.lang.Object> keys, java.util.List<java.lang.Object> values)
          Create a new map with initial values.
 java.lang.Object create(java.util.Map initialMap)
          Create a new map with initial values.
 java.lang.Object create(java.lang.Object[] keys, java.lang.Object[] values)
          Create a new map with initial values.
 int deepHashValue(java.lang.Object map, java.util.IdentityHashMap<java.lang.Object,java.lang.Object> hashedObjects)
          Calculate hash value
 java.lang.Object get(java.lang.Object map, java.lang.Object key)
          Return the value to which the specified key is mapped.
 void getAll(java.lang.Object mapFrom, java.util.Map to)
           
 void getAll(java.lang.Object mapFrom, java.lang.Object[] keys, java.lang.Object[] values)
          Get keys and values, in order
 java.lang.Object getCeilingKey(java.lang.Object map, java.lang.Object key)
           
 int getEntries(java.lang.Object src, java.lang.Object from, boolean fromInclusive, java.lang.Object end, boolean endInclusive, ArrayBinding dstKeyArrayBinding, java.lang.Object dstKeyArray, ArrayBinding dstValueArrayBinding, java.lang.Object dstValueArray, int limit)
          Read a range of entries
 java.lang.Object getFirstKey(java.lang.Object map)
           
 java.lang.Object getFloorKey(java.lang.Object map, java.lang.Object key)
           
 java.lang.Object getHigherKey(java.lang.Object map, java.lang.Object key)
           
 java.lang.Object[] getKeys(java.lang.Object map)
          Get keys in order
 void getKeys(java.lang.Object map, java.util.Set<java.lang.Object> keys)
           
 java.lang.Object getLastKey(java.lang.Object map)
           
 java.lang.Object getLowerKey(java.lang.Object map, java.lang.Object key)
           
 java.lang.Object[] getValues(java.lang.Object map)
          Get values in order
 boolean isInstance(java.lang.Object obj)
           
 void postConstruction()
           
 void put(java.lang.Object map, java.lang.Object key, java.lang.Object value)
           
 void putAll(java.lang.Object map, java.util.Map src)
           
 java.lang.Object remove(java.lang.Object map, java.lang.Object key)
           
 int size(java.lang.Object map)
           
 
Methods inherited from class org.simantics.databoard.binding.MapBinding
accept, accept, assertInstaceIsValid, createUnchecked, createUnchecked, createUnchecked, createUnchecked, deepCompare, getComponentBinding, getComponentBinding, getComponentCount, getKeyBinding, getValueBinding, readFrom, setKeyBinding, setValueBinding, type
 
Methods inherited from class org.simantics.databoard.binding.Binding
assertInstaceIsValid, clone, cloneUnchecked, compare, createDefault, createDefaultUnchecked, createRandom, createRandomUnchecked, equals, hashValue, isImmutable, parseValue, parseValue, parseValueDefinition, printValue, printValueDefinition, serializer, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.util.Comparator
equals
 

Constructor Detail

HashMapBinding

public HashMapBinding(Binding keyBinding,
                      Binding valueBinding)

HashMapBinding

public HashMapBinding(MapType mapType,
                      Binding keyBinding,
                      Binding valueBinding)
Method Detail

postConstruction

public void postConstruction()

create

public java.lang.Object create()
Specified by:
create in class MapBinding

create

public java.lang.Object create(java.lang.Object[] keys,
                               java.lang.Object[] values)
Description copied from class: MapBinding
Create a new map with initial values. The values of the initialMap are accessible with the key and value binding.

Specified by:
create in class MapBinding
Returns:
map object

create

public java.lang.Object create(java.util.List<java.lang.Object> keys,
                               java.util.List<java.lang.Object> values)
Description copied from class: MapBinding
Create a new map with initial values. The values of the initialMap are accessible with the respective key and value binding.

Specified by:
create in class MapBinding
Returns:
map object

create

public java.lang.Object create(java.util.Map initialMap)
                        throws BindingException
Description copied from class: MapBinding
Create a new map with initial values. The values of the initialMap are accessible with the respective key and value binding.

Specified by:
create in class MapBinding
Returns:
map object
Throws:
BindingException

clear

public void clear(java.lang.Object map)
Specified by:
clear in class MapBinding

containsKey

public boolean containsKey(java.lang.Object map,
                           java.lang.Object key)
Specified by:
containsKey in class MapBinding

containsValue

public boolean containsValue(java.lang.Object map,
                             java.lang.Object value)
Specified by:
containsValue in class MapBinding

get

public java.lang.Object get(java.lang.Object map,
                            java.lang.Object key)
Description copied from class: MapBinding
Return the value to which the specified key is mapped. If the key is not mapped, BindingException is thrown. The key and the value objects are accessible with the respective bindings.

Specified by:
get in class MapBinding
Returns:
value

getKeys

public java.lang.Object[] getKeys(java.lang.Object map)
Description copied from class: MapBinding
Get keys in order

Specified by:
getKeys in class MapBinding
Returns:
keys

getKeys

public void getKeys(java.lang.Object map,
                    java.util.Set<java.lang.Object> keys)
             throws BindingException
Specified by:
getKeys in class MapBinding
Throws:
BindingException

getEntries

public int getEntries(java.lang.Object src,
                      java.lang.Object from,
                      boolean fromInclusive,
                      java.lang.Object end,
                      boolean endInclusive,
                      ArrayBinding dstKeyArrayBinding,
                      java.lang.Object dstKeyArray,
                      ArrayBinding dstValueArrayBinding,
                      java.lang.Object dstValueArray,
                      int limit)
               throws BindingException
Description copied from class: MapBinding
Read a range of entries

Specified by:
getEntries in class MapBinding
limit - maximum number of entries to read, -1 for no limit
Returns:
the number of entries read
Throws:
BindingException

count

public int count(java.lang.Object src,
                 java.lang.Object from,
                 boolean fromInclusive,
                 java.lang.Object end,
                 boolean endInclusive)
          throws BindingException
Description copied from class: MapBinding
Count the number of entries between two keyes

Specified by:
count in class MapBinding
Throws:
BindingException

getValues

public java.lang.Object[] getValues(java.lang.Object map)
Description copied from class: MapBinding
Get values in order

Specified by:
getValues in class MapBinding
Returns:
values

put

public void put(java.lang.Object map,
                java.lang.Object key,
                java.lang.Object value)
Specified by:
put in class MapBinding

putAll

public void putAll(java.lang.Object map,
                   java.util.Map src)
            throws BindingException
Specified by:
putAll in class MapBinding
Throws:
BindingException

getAll

public void getAll(java.lang.Object mapFrom,
                   java.util.Map to)
Specified by:
getAll in class MapBinding

getAll

public void getAll(java.lang.Object mapFrom,
                   java.lang.Object[] keys,
                   java.lang.Object[] values)
            throws BindingException
Description copied from class: MapBinding
Get keys and values, in order

Specified by:
getAll in class MapBinding
Throws:
BindingException

remove

public java.lang.Object remove(java.lang.Object map,
                               java.lang.Object key)
Specified by:
remove in class MapBinding

size

public int size(java.lang.Object map)
Specified by:
size in class MapBinding

isInstance

public boolean isInstance(java.lang.Object obj)
Specified by:
isInstance in class Binding

deepHashValue

public int deepHashValue(java.lang.Object map,
                         java.util.IdentityHashMap<java.lang.Object,java.lang.Object> hashedObjects)
                  throws BindingException
Description copied from class: Binding
Calculate hash value

Overrides:
deepHashValue in class MapBinding
hashedObjects - collection of already hashed object or optionally null
Returns:
hash value
Throws:
BindingException

getCeilingKey

public java.lang.Object getCeilingKey(java.lang.Object map,
                                      java.lang.Object key)
Specified by:
getCeilingKey in class MapBinding

getFirstKey

public java.lang.Object getFirstKey(java.lang.Object map)
Specified by:
getFirstKey in class MapBinding

getFloorKey

public java.lang.Object getFloorKey(java.lang.Object map,
                                    java.lang.Object key)
Specified by:
getFloorKey in class MapBinding

getHigherKey

public java.lang.Object getHigherKey(java.lang.Object map,
                                     java.lang.Object key)
Specified by:
getHigherKey in class MapBinding

getLastKey

public java.lang.Object getLastKey(java.lang.Object map)
Specified by:
getLastKey in class MapBinding

getLowerKey

public java.lang.Object getLowerKey(java.lang.Object map,
                                    java.lang.Object key)
Specified by:
getLowerKey in class MapBinding