org.simantics.databoard.binding
Class MapBinding

java.lang.Object
  extended by org.simantics.databoard.binding.Binding
      extended by org.simantics.databoard.binding.MapBinding
All Implemented Interfaces:
java.util.Comparator<java.lang.Object>
Direct Known Subclasses:
HashMapBinding, HashSetBinding, TreeMapBinding, TreeSetBinding

public abstract class MapBinding
extends Binding

This is a binding of Map Type and a Java Object

Author:
Toni Kalajainen
See Also:
MapType

Nested Class Summary
 
Nested classes/interfaces inherited from class org.simantics.databoard.binding.Binding
Binding.Visitor<T>, Binding.Visitor1
 
Constructor Summary
MapBinding(Binding keyBinding, Binding valueBinding)
          Create new map binding.
MapBinding(MapType mapType, Binding keyBinding, Binding valueBinding)
          Create new map binding for a type.
 
Method Summary
<T> T
accept(Binding.Visitor<T> v)
           
 void accept(Binding.Visitor1 v, java.lang.Object obj)
           
 void assertInstaceIsValid(java.lang.Object map, java.util.Set<java.lang.Object> validInstances)
          Assert the instance is valid and follows restrictions set in data type.
abstract  void clear(java.lang.Object map)
           
abstract  boolean containsKey(java.lang.Object map, java.lang.Object key)
           
abstract  boolean containsValue(java.lang.Object map, java.lang.Object value)
           
abstract  java.lang.Object create()
           
abstract  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.
abstract  java.lang.Object create(java.util.Map initialMap)
          Create a new map with initial values.
abstract  java.lang.Object create(java.lang.Object[] keys, java.lang.Object[] values)
          Create a new map with initial values.
 java.lang.Object createUnchecked()
           
 java.lang.Object createUnchecked(java.util.List<java.lang.Object> keys, java.util.List<java.lang.Object> values)
           
 java.lang.Object createUnchecked(java.util.Map initialMap)
           
 java.lang.Object createUnchecked(java.lang.Object[] keys, java.lang.Object[] values)
           
 int deepCompare(java.lang.Object o1, java.lang.Object o2, java.util.Set<IdentityPair<java.lang.Object,java.lang.Object>> compareHistory)
           
 int deepHashValue(java.lang.Object map, java.util.IdentityHashMap<java.lang.Object,java.lang.Object> hashedObjects)
          Calculate hash value
abstract  java.lang.Object get(java.lang.Object map, java.lang.Object key)
          Return the value to which the specified key is mapped.
abstract  void getAll(java.lang.Object mapFrom, java.util.Map to)
           
abstract  void getAll(java.lang.Object mapFrom, java.lang.Object[] keys, java.lang.Object[] values)
          Get keys and values, in order
abstract  java.lang.Object getCeilingKey(java.lang.Object map, java.lang.Object key)
           
abstract  java.lang.Object getFirstKey(java.lang.Object map)
           
abstract  java.lang.Object getFloorKey(java.lang.Object map, java.lang.Object key)
           
abstract  java.lang.Object getHigherKey(java.lang.Object map, java.lang.Object key)
           
 Binding getKeyBinding()
           
abstract  java.lang.Object[] getKeys(java.lang.Object map)
          Get keys in order
abstract  void getKeys(java.lang.Object map, java.util.Set<java.lang.Object> keys)
           
abstract  java.lang.Object getLastKey(java.lang.Object map)
           
abstract  java.lang.Object getLowerKey(java.lang.Object map, java.lang.Object key)
           
 Binding getValueBinding()
           
abstract  java.lang.Object[] getValues(java.lang.Object map)
          Get values in order
abstract  void put(java.lang.Object map, java.lang.Object key, java.lang.Object value)
           
abstract  void putAll(java.lang.Object mapTo, java.util.Map from)
           
abstract  java.lang.Object remove(java.lang.Object map, java.lang.Object key)
           
 void setKeyBinding(Binding keyBinding)
           
 void setValueBinding(Binding valueBinding)
           
abstract  int size(java.lang.Object map)
           
 MapType type()
          Get Value Type
 
Methods inherited from class org.simantics.databoard.binding.Binding
assertInstaceIsValid, clone, cloneUnchecked, compare, createDefault, createDefaultUnchecked, createRandom, createRandomUnchecked, equals, hashValue, isImmutable, isInstance, parseValue, parseValue, parseValueDefinition, printValue, printValueDefinition, serializer, serializer, serializerUnchecked
 
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

MapBinding

public MapBinding(Binding keyBinding,
                  Binding valueBinding)
Create new map binding. Creates new data type.

Parameters:
keyBinding -
valueBinding -

MapBinding

public MapBinding(MapType mapType,
                  Binding keyBinding,
                  Binding valueBinding)
Create new map binding for a type.

Parameters:
mapType -
keyBinding -
valueBinding -
Method Detail

type

public MapType type()
Description copied from class: Binding
Get Value Type

Overrides:
type in class Binding
Returns:
value type

getKeyBinding

public Binding getKeyBinding()

getValueBinding

public Binding getValueBinding()

setKeyBinding

public void setKeyBinding(Binding keyBinding)

setValueBinding

public void setValueBinding(Binding valueBinding)

create

public abstract java.lang.Object create()
                                 throws BindingException
Throws:
BindingException

create

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

Parameters:
initialMap -
Returns:
map object
Throws:
BindingException

create

public abstract java.lang.Object create(java.util.List<java.lang.Object> keys,
                                        java.util.List<java.lang.Object> values)
                                 throws BindingException
Create a new map with initial values. The values of the initialMap are accessible with the respective key and value binding.

Parameters:
keys -
values -
Returns:
map object
Throws:
BindingException

create

public abstract java.lang.Object create(java.lang.Object[] keys,
                                        java.lang.Object[] values)
                                 throws BindingException
Create a new map with initial values. The values of the initialMap are accessible with the key and value binding.

Parameters:
keys -
values -
Returns:
map object
Throws:
BindingException

size

public abstract int size(java.lang.Object map)
                  throws BindingException
Throws:
BindingException

get

public abstract java.lang.Object get(java.lang.Object map,
                                     java.lang.Object key)
                              throws BindingException
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.

Parameters:
map -
key -
Returns:
value
Throws:
BindingException

containsKey

public abstract boolean containsKey(java.lang.Object map,
                                    java.lang.Object key)
                             throws BindingException
Throws:
BindingException

containsValue

public abstract boolean containsValue(java.lang.Object map,
                                      java.lang.Object value)
                               throws BindingException
Throws:
BindingException

put

public abstract void put(java.lang.Object map,
                         java.lang.Object key,
                         java.lang.Object value)
                  throws BindingException
Throws:
BindingException

remove

public abstract java.lang.Object remove(java.lang.Object map,
                                        java.lang.Object key)
                                 throws BindingException
Throws:
BindingException

putAll

public abstract void putAll(java.lang.Object mapTo,
                            java.util.Map from)
                     throws BindingException
Throws:
BindingException

getAll

public abstract void getAll(java.lang.Object mapFrom,
                            java.util.Map to)
                     throws BindingException
Throws:
BindingException

getAll

public abstract void getAll(java.lang.Object mapFrom,
                            java.lang.Object[] keys,
                            java.lang.Object[] values)
                     throws BindingException
Get keys and values, in order

Parameters:
mapFrom -
keys -
values -
Throws:
BindingException

getKeys

public abstract java.lang.Object[] getKeys(java.lang.Object map)
                                    throws BindingException
Get keys in order

Parameters:
map -
Returns:
keys
Throws:
BindingException

getKeys

public abstract void getKeys(java.lang.Object map,
                             java.util.Set<java.lang.Object> keys)
                      throws BindingException
Throws:
BindingException

getValues

public abstract java.lang.Object[] getValues(java.lang.Object map)
                                      throws BindingException
Get values in order

Parameters:
map -
Returns:
values
Throws:
BindingException

clear

public abstract void clear(java.lang.Object map)
                    throws BindingException
Throws:
BindingException

assertInstaceIsValid

public void assertInstaceIsValid(java.lang.Object map,
                                 java.util.Set<java.lang.Object> validInstances)
                          throws BindingException
Assert the instance is valid and follows restrictions set in data type. Assertions: 1. correct instance 2. assertion of each key and value

Specified by:
assertInstaceIsValid in class Binding
Parameters:
map - the instance
validInstances - a collection of validated instances or null
Throws:
BindingException - on invalid instance

accept

public void accept(Binding.Visitor1 v,
                   java.lang.Object obj)
Specified by:
accept in class Binding

accept

public <T> T accept(Binding.Visitor<T> v)
Specified by:
accept 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

Specified by:
deepHashValue in class Binding
hashedObjects - collection of already hashed object or optionally null
Returns:
hash value
Throws:
BindingException

deepCompare

public int deepCompare(java.lang.Object o1,
                       java.lang.Object o2,
                       java.util.Set<IdentityPair<java.lang.Object,java.lang.Object>> compareHistory)
                throws BindingException
Specified by:
deepCompare in class Binding
Throws:
BindingException

createUnchecked

public java.lang.Object createUnchecked(java.lang.Object[] keys,
                                        java.lang.Object[] values)
                                 throws RuntimeBindingException
Throws:
RuntimeBindingException

createUnchecked

public java.lang.Object createUnchecked(java.util.List<java.lang.Object> keys,
                                        java.util.List<java.lang.Object> values)
                                 throws RuntimeBindingException
Throws:
RuntimeBindingException

createUnchecked

public java.lang.Object createUnchecked(java.util.Map initialMap)
                                 throws RuntimeBindingException
Throws:
RuntimeBindingException

createUnchecked

public java.lang.Object createUnchecked()
                                 throws RuntimeBindingException
Throws:
RuntimeBindingException

getFirstKey

public abstract java.lang.Object getFirstKey(java.lang.Object map)

getLastKey

public abstract java.lang.Object getLastKey(java.lang.Object map)

getLowerKey

public abstract java.lang.Object getLowerKey(java.lang.Object map,
                                             java.lang.Object key)

getFloorKey

public abstract java.lang.Object getFloorKey(java.lang.Object map,
                                             java.lang.Object key)

getCeilingKey

public abstract java.lang.Object getCeilingKey(java.lang.Object map,
                                               java.lang.Object key)

getHigherKey

public abstract java.lang.Object getHigherKey(java.lang.Object map,
                                              java.lang.Object key)