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  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
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<java.lang.Object,java.lang.Object> 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
<K,V> void
getAll(java.lang.Object mapFrom, java.util.Map<K,V> 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)
           
 Binding getComponentBinding(ChildReference path)
          Get component binding
 Binding getComponentBinding(int index)
          Get component binding
 int getComponentCount()
          Get component binding count
abstract  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 resultLimit)
          Read a range of entries
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
<K,V> void
put(java.lang.Object map, K key, V value)
           
abstract
<K,V> void
putAll(java.lang.Object mapTo, java.util.Map<K,V> mapFrom)
           
 void readFrom(Binding srcBinding, java.lang.Object src, java.lang.Object dst)
          Read values from one object to another.
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, createRandom, createRandom, createRandomUnchecked, equals, hashValue, isImmutable, isInstance, parseValue, parseValue, parseValueDefinition, printValue, printValueDefinition, readFromTry, readFromTryUnchecked, readFromUnchecked, serializer, toString, 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

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 <K,V> void put(java.lang.Object map,
                               K key,
                               V 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 <K,V> void putAll(java.lang.Object mapTo,
                                  java.util.Map<K,V> mapFrom)
                     throws BindingException
Throws:
BindingException

getAll

public abstract <K,V> void getAll(java.lang.Object mapFrom,
                                  java.util.Map<K,V> 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

count

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

Parameters:
src -
from -
fromInclusive -
end -
endInclusive -
Throws:
BindingException

getEntries

public abstract 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 resultLimit)
                        throws BindingException
Read a range of entries

Parameters:
src -
from -
fromInclusive -
end -
endInclusive -
dstKeyArrayBinding -
dstKeyArray -
dstValueArrayBinding -
dstValueArray -
resultLimit - maximum number of entries to read, -1 for no limit
Returns:
the number of entries read
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

readFrom

public void readFrom(Binding srcBinding,
                     java.lang.Object src,
                     java.lang.Object dst)
              throws BindingException
Description copied from class: Binding
Read values from one object to another.

Specified by:
readFrom in class Binding
dst - valid object of this binding
Throws:
BindingException

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<java.lang.Object,java.lang.Object> 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)

getComponentBinding

public Binding getComponentBinding(ChildReference path)
Description copied from class: Binding
Get component binding

Specified by:
getComponentBinding in class Binding
Parameters:
path - child path or null to return this.
Returns:
binding

getComponentCount

public int getComponentCount()
Description copied from class: Binding
Get component binding count

Specified by:
getComponentCount in class Binding
Returns:
component count

getComponentBinding

public Binding getComponentBinding(int index)
Description copied from class: Binding
Get component binding

Specified by:
getComponentBinding in class Binding
Returns:
binding