2 Information between databoard's datatype and Java classes are transferred using a ''[javadoc/org/simantics/databoard/binding/Binding.html Binding]''.
\r
3 The type and hierarchy structure of binding is same as its repsective type and [javadoc/org/simantics/databoard/type/Datatype.html Datatype].
\r
4 As datatype has tree-structure, so does a binding.
\r
6 {| border="1" cellpadding="3" cellspacing="0" align="center"
\r
7 | '''#'''||'''Type'''||'''Description'''
\r
9 | -||[javadoc/org/simantics/databoard/binding/Binding.java|Binding]||Base class for all Bindings
\r
11 | 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
\r
13 | 6||[javadoc/org/simantics/databoard/binding/StringBinding.java|StringBinding]|| String
\r
15 | 7||[javadoc/org/simantics/databoard/binding/RecordBinding.java|RecordBinding]|| Record
\r
17 | 8||[javadoc/org/simantics/databoard/binding/ArrayBinding.java|ArrayBinding]|| Array - an ordered sequence of elements of one value.
\r
19 | 9||[javadoc/org/simantics/databoard/binding/MapBinding.java|MapBinding]|| Map - an ''ordered'' map of keys to values.
\r
21 | 11||[javadoc/org/simantics/databoard/binding/UnionBinding.java|UnionBinding]|| Union
\r
23 | 10||[javadoc/org/simantics/databoard/binding/OptionalBinding.java|OptionalBinding]|| Optional value
\r
25 | 12||[javadoc/org/simantics/databoard/binding/VariantBinding.java|VariantBinding]|| Variant value
\r
28 ==Built-in Bindings=
\r
31 To acquire a binding, the developer can use a utility that creates one using Java reflection functions.
\r
32 Binding binding = Bindings.getBinding( Double.class );
\r
34 The Binding implementation is based on reflection or constructed from byte-code at runtime. Reflection is used if ASM library is not available.
\r
36 An automatic mechanism can create binding out of Java class, provided that certain rules are followed.
\r
38 ''Record-like class:''
\r
41 public Object value;
\r
44 ''Immutable class:''
\r
46 private String name;
\r
47 private Object value;
\r
49 public Foo(String name, Object value) {
\r
54 public String getName() {
\r
58 public Object getValue() {
\r
64 ''Bean-like classes:''
\r
66 private String name;
\r
67 private Object value;
\r
69 public void setName(String name) {
\r
73 public void setValue(Object value) {
\r
77 public String getName() {
\r
81 public Object getValue() {
\r
88 You can aid the Binding creation with annotations.
\r
90 such as @Recursive, @Optional, @Arguments.
\r
92 {| style="background-color: #e9e9e9; border: 1px solid #aaaaaa; "
\r
98 ==Hand-Written Binding==