=Binding= Information between databoard's datatype and Java classes are transferred using a ''[javadoc/org/simantics/databoard/binding/Binding.html Binding]''. The type and hierarchy structure of binding is same as its repsective type and [javadoc/org/simantics/databoard/type/Datatype.html Datatype]. As datatype has tree-structure, so does a binding. {| border="1" cellpadding="3" cellspacing="0" align="center" | '''#'''||'''Type'''||'''Description''' |- | -||[javadoc/org/simantics/databoard/binding/Binding.java|Binding]||Base class for all Bindings |- | 0-5||[javadoc/org/simantics/databoard/binding/BooleanBinding.java|BooleanBinding],[javadoc/org/simantics/databoard/binding/ByteBinding.java|ByteBinding],[javadoc/org/simantics/databoard/binding/IntBinding.java|IntBinding],[javadoc/org/simantics/databoard/binding/LongBinding.java|LongBinding],[javadoc/org/simantics/databoard/binding/FloatBinding.java|FloatBinding],[javadoc/org/simantics/databoard/binding/DoubleBinding.java|DoubleBinding]||Primitive and numeric Bindings |- | 6||[javadoc/org/simantics/databoard/binding/StringBinding.java|StringBinding]|| String |- | 7||[javadoc/org/simantics/databoard/binding/RecordBinding.java|RecordBinding]|| Record |- | 8||[javadoc/org/simantics/databoard/binding/ArrayBinding.java|ArrayBinding]|| Array - an ordered sequence of elements of one value. |- | 9||[javadoc/org/simantics/databoard/binding/MapBinding.java|MapBinding]|| Map - an ''ordered'' map of keys to values. |- | 11||[javadoc/org/simantics/databoard/binding/UnionBinding.java|UnionBinding]|| Union |- | 10||[javadoc/org/simantics/databoard/binding/OptionalBinding.java|OptionalBinding]|| Optional value |- | 12||[javadoc/org/simantics/databoard/binding/VariantBinding.java|VariantBinding]|| Variant value |} ==Built-in Bindings= ==Class Binding== To acquire a binding, the developer can use a utility that creates one using Java reflection functions. Binding binding = Bindings.getBinding( Double.class ); The Binding implementation is based on reflection or constructed from byte-code at runtime. Reflection is used if ASM library is not available. An automatic mechanism can create binding out of Java class, provided that certain rules are followed. ''Record-like class:'' class Foo { public String name; public Object value; } ''Immutable class:'' class Foo { private String name; private Object value; public Foo(String name, Object value) { this.name = name; this.value = value; } public String getName() { return name; } public Object getValue() { return value; } } ''Bean-like classes:'' class Foo { private String name; private Object value; public void setName(String name) { this.name = name; } public void setValue(Object value) { this.value = value; } public String getName() { return name; } public Object getValue() { return value; } } ===Annotations=== You can aid the Binding creation with annotations. such as @Recursive, @Optional, @Arguments. {| style="background-color: #e9e9e9; border: 1px solid #aaaaaa; " | '''Class''' |- |} ==Hand-Written Binding==