org.simantics.databoard.binding
Class OptionalBinding

java.lang.Object
  extended by org.simantics.databoard.binding.Binding
      extended by org.simantics.databoard.binding.OptionalBinding
All Implemented Interfaces:
java.util.Comparator<java.lang.Object>
Direct Known Subclasses:
ContainerOptionalBinding, OptionalBindingDefault, UnboundScheme.UnboundOptionalBinding

public abstract class OptionalBinding
extends Binding

This is a binding of Optional Type and a Java Object.

Author:
Toni Kalajainen
See Also:
OptionalType

Nested Class Summary
 
Nested classes/interfaces inherited from class org.simantics.databoard.binding.Binding
Binding.Visitor<T>, Binding.Visitor1
 
Field Summary
 Binding componentBinding
           
 
Constructor Summary
OptionalBinding(Binding componentBinding)
           
OptionalBinding(OptionalType type, Binding componentBinding)
           
 
Method Summary
<T> T
accept(Binding.Visitor<T> v)
           
 void accept(Binding.Visitor1 v, java.lang.Object obj)
           
 void assertInstaceIsValid(java.lang.Object obj, java.util.Set<java.lang.Object> validInstances)
          Assert tje obj is a correct instance.
abstract  java.lang.Object createNoValue()
          Create result with no value
 java.lang.Object createNoValueUnchecked()
           
abstract  java.lang.Object createValue(java.lang.Object value)
          Create result with a value
 java.lang.Object createValueUnchecked(java.lang.Object value)
           
 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 value, java.util.IdentityHashMap<java.lang.Object,java.lang.Object> hashedObjects)
          Calculate hash value
 Binding getComponentBinding()
           
abstract  java.lang.Object getValue(java.lang.Object arg)
          Get the non-null value, the arg did not contain a value, BindingException is thrown.
abstract  boolean hasValue(java.lang.Object arg)
          Tests whether arg contains a value
 boolean hasValueUnchecked(java.lang.Object arg)
           
abstract  boolean isInstance(java.lang.Object obj)
           
abstract  void setNoValue(java.lang.Object optional)
           
abstract  void setValue(java.lang.Object optional, java.lang.Object componentValue)
           
 OptionalType type()
          Get Value 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, 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
 

Field Detail

componentBinding

public Binding componentBinding
Constructor Detail

OptionalBinding

public OptionalBinding(OptionalType type,
                       Binding componentBinding)

OptionalBinding

public OptionalBinding(Binding componentBinding)
Method Detail

type

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

Overrides:
type in class Binding
Returns:
value type

createNoValue

public abstract java.lang.Object createNoValue()
                                        throws BindingException
Create result with no value

Returns:
no value
Throws:
BindingException

createValue

public abstract java.lang.Object createValue(java.lang.Object value)
                                      throws BindingException
Create result with a value

Parameters:
value -
Returns:
argument that contains a value
Throws:
BindingException

hasValue

public abstract boolean hasValue(java.lang.Object arg)
                          throws BindingException
Tests whether arg contains a value

Parameters:
arg -
Returns:
true if arg contained a value
Throws:
BindingException

getValue

public abstract java.lang.Object getValue(java.lang.Object arg)
                                   throws BindingException
Get the non-null value, the arg did not contain a value, BindingException is thrown.

Parameters:
arg - argument that contains a value
Returns:
the composite value
Throws:
BindingException

setValue

public abstract void setValue(java.lang.Object optional,
                              java.lang.Object componentValue)
                       throws BindingException
Throws:
BindingException

setNoValue

public abstract void setNoValue(java.lang.Object optional)
                         throws BindingException
Throws:
BindingException

isInstance

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

getComponentBinding

public Binding getComponentBinding()

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

assertInstaceIsValid

public void assertInstaceIsValid(java.lang.Object obj,
                                 java.util.Set<java.lang.Object> validInstances)
                          throws BindingException
Assert tje obj is a correct instance. Assert the obj is valid also according to the component binding.

Specified by:
assertInstaceIsValid in class Binding
Parameters:
obj - the instance
validInstances - optional set of already validated instances
Throws:
BindingException - on invalid instance

deepHashValue

public int deepHashValue(java.lang.Object value,
                         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

createNoValueUnchecked

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

createValueUnchecked

public java.lang.Object createValueUnchecked(java.lang.Object value)
                                      throws RuntimeBindingException
Throws:
RuntimeBindingException

hasValueUnchecked

public boolean hasValueUnchecked(java.lang.Object arg)
                          throws RuntimeBindingException
Throws:
RuntimeBindingException